UNIVERSITÉ MOHAMMED V-AGDAL
Faculté des Sciences
RABAT
Laboratoire de recherche Informatique et
Télécommunications
Master ...
Table des matières
Introduction 1
1 Généralités sur la crytographie 2
1.1 Histoire de la cryptographie . . . . . . . . . ....
3.3.1 compléments mathématiques . . . . . . . . . . . . . . . . . . . 35
3.3.2 ECDSA(Elliptic Curve Digital Signature Algo...
Table des gures
1.1 Une Scytale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.1 Description géométri...
Liste des tableaux
2.1 Code de conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.1 Correspondance en...
Introduction
La cryptologie, étymologiquement la science du cache par extension la science du
secret, est base quasiment d...
Chapitre 1
Généralités sur la crytographie
Avant de commencer, il est bon de dénir précisément certains termes couram-
men...
à partir d'un ou plusieurs textes chirés, connaissant le texte en clair corres-
pondant;
• Une attaque sur texte clair cho...
487 av. J.-C. Des grecs utilisent une scytale, aussi appelé bâton de Plutarque
(historien et moraliste de la Grèce Antique...
1499 Jean Trithème (1462-1516), ancien abbé, est considéré comme un des
pères de la cryptographie. En eet, il est l'auteur...
cassage du code également. Cependant, la cryptographie a évolué uniquement dans
des milieux fermés tels les gouvernements,...
des opérations mathématiques et réalisées en plusieurs passes. La clé faisant partie
intégrante de la fonction, il est imp...
pouvons obtenir les cinq caractéristiques d'une signature (authentique, infalsiable,
non réutilisable, inaltérable, irrévo...
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 typ...
ou encore le message haché. Une fonction de hachage doit posséder deux qualités
indispensables [1] :
• Résistance à la dét...
industriels européens.
Les cryptosystèmes est basée sur des problèmes mathématiques diciles à ré-
soudre tel que la factor...
Chapitre 2
Cryptographies basés sur la
factorisation
La factorisation est un problème algorithmique dont la solution est d...
Le plus grand nombre premier découvert
En janvier 2013, a été trouvé le nouveau plus grand nombre premier connu
à ce jour....
Comme b =0, a=b ×q1+ r1, pgcd(a,b)=pgcd(b,r1), 0≤r1  |b|
Si r1 =0, b=r1 ×q2+ r2 , pgcd(b,r1) = pgcd(r1,r2) , 0 ≤r2  r1
Si ...
Alors le pgcd de 255 et 141 est 3.
Exemple2
calcule les coecients de Bezout a et b tel que :
255 + 141 = pgcd(255, 141) = ...
• Compatibilité de la loi + avec la congruence modulo n :
a + c ≡ b + d mod n.
• Compatibilité de la loi × avec la congrue...
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 mod
19...
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...
de la clé publique du destinataire permet à tous les émetteurs de crypter les messages
qui ne pourront être décryptés que ...
• Cherche une valeur e inferieur à φ(n), et qui doit être premier avec cette
dernière. Par exemple on prend e= 7185583.
• ...
B reçoit le message C ,et utilise sa clé privé (d, n) pour déchirer le message C.
Et par la suit on trouve les résultats s...
Déchirement
2.3 Chirement de Rabin
Michael Oser Rabin (né en 1931 à Breslau en Allemagne, maintenant Wrocªaw
en Pologne) e...
• Obtenir la clé publique de récepteur.
• Représenter le message comme un entier M dans l'intervalle Zn=[0, 1, ..., n−1].
...
M1=(a × p × mq +b × q × mp ) mod n
M2=-M1 = n − M1
M3=(a × p × mq -b × q × mp ) mod n
M4=-M3 = n − M3
Cet algorithme n'est...
c3= m2
3 mod n = 270819262
mod 48010717= 38744261 mod 48010717.
Alors A envoie à B le message chiré suivante : C = 4632124...
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....
Génération des clés
Chirement
Déchirement
27
Chapitre 3
Cryptographies basés sur logarithme
discret
Le problème du logarithme discret est un autre problème algorithmiq...
3.1.1 Principe de fonctionnement
Le DSA est similaire à un autre type de signature développée par Schnorr . Il a
aussi des...
La signature de message m est (r ,s).
La vérication
• Rejeter la signature si 0  r  q ou 0  s  q n'est pas vérié.
• Calcul...
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éricati...
sont réduites à leur minimum. L'astuce utilisée pour y parvenir sera reprise par le
NIST, lorsqu'il spéciera le standard f...
La vérication
Pour vérier une signature (e, s) sur m on calcule u par la relation suivante :
• Calcule u= gs
y−e
mod p.
La...
3.2.3 Implémentation
On utilise un exemple d'implémentation pour signe un message m.
Géneration des clés
Signature
Véricti...
3.3.1 compléments mathématiques
Le protocole ECDSA utilise les opérations sur les courbes elliptiques suivantes :
• Additi...
Addition, Négation et Doublement
• Addition
Soient P = (x1, y1) et Q = (x2, y2) deux points de E tels que P = Q.Pour
trouv...
• Négation
Soient P = (x1, y1) et Q = (x2, y2) deux points de E tels que P = −Q. Si
on essaye d'appliquer la méthode géomé...
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...
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 ...
3.3.2.1 Principe de fonctionnement
Pour utiliser le protocole ECDSA, les parties doivent s'accorder sur un ensemble
d'élém...
• 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...
Alors le paire (r, s)=(31167, 82722).
La vérication
• Calculer w = s−1
mod 114973= 83035 mod 114973.
• Calculer u1 = H(m)w...
obtenant ainsi un nombre entier dans l'intervalle [1,q − 1]. Le ECDSA génère r dans
l'intervalle [1, n − 1] en prenant la ...
moins étudié que celui sur corps ni. De plus, le schéma DSA n'a pas de preuve des
sécurités, contrairement à RSA et ECDSA....
Conclusion et perspectives
Dans ce projet , on a étudié deux classes d'algorithmes de cryptographie impor-
tants :les cryp...
Annexes
Cryptographies basés sur la factorisation
Chirement de RSA
46
47
Chirement de Rabin
48
Cryptographies basés sur logarithme discret
Signature de DSA
49
Signature de Schnorr
50
51
Signature de ESDSA
52
53
Glossaire
• Cryptographie :Art de chirer et de déchirer les messages.
• Cryptanalyse :Art de décrypter les messages chirés...
Bibliographie
[1] P. Barthélemy, R. Rolland,P. Véron .Cryptographie.collection informatique diri-
gée par Jean-Charles Pom...
[18] M. H. Sherif .Paiements électroniques sécurisés .PPUR presses polytechniques,
2007.
[19] J. Katz .Digital Signatures ...
Prochain SlideShare
Chargement dans…5
×

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

4 477 vues

Publié le

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

Aucun téléchargement
Vues
Nombre de vues
4 477
Sur SlideShare
0
Issues des intégrations
0
Intégrations
12
Actions
Partages
0
Téléchargements
102
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

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

  1. 1. UNIVERSITÉ MOHAMMED V-AGDAL Faculté des Sciences RABAT Laboratoire de recherche Informatique et Télécommunications Master Informatique et Télécommunications Rapport sur l'étude et l'implémentation de quelques algorithmes de chirement et de signature Encadré par Mr. Mohamed EL MARRAKI Réalisé par Nasser Yassine Ouyous Mina Année universitaire 2013-2014
  2. 2. Table des matières Introduction 1 1 Généralités sur la crytographie 2 1.1 Histoire de la cryptographie . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 Le chirement symétrique et asymétrique . . . . . . . . . . . . . . . . 6 1.3 La signature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.3.1 Fonctionnement de la signature numérique . . . . . . . . . . . 8 1.3.2 Types de signature . . . . . . . . . . . . . . . . . . . . . . . . 9 1.3.3 Fonctions de hachage . . . . . . . . . . . . . . . . . . . . . . . 9 2 Cryptographies basés sur la factorisation 12 2.1 Compléments mathématiques . . . . . . . . . . . . . . . . . . . . . . 12 2.1.1 Calcul du pgcd, algorithme d'Euclide . . . . . . . . . . . . . . 13 2.1.2 Théorème de Bezout, algorithme d'Euclide étendu . . . . . . . 14 2.1.3 Congruences,L'exponentiation rapide et Théorème d'Euler . . 15 2.1.4 Le théorème des restes chinois . . . . . . . . . . . . . . . . . 17 2.2 Chirement de RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.2.1 Principe de fonctionnement . . . . . . . . . . . . . . . . . . . 18 2.2.2 Exemple d'illustration . . . . . . . . . . . . . . . . . . . . . . 19 2.2.3 Implémentation . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.3 Chirement de Rabin . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.3.1 Principe de fonctionnement . . . . . . . . . . . . . . . . . . . 22 2.3.2 Exemple d'illustration . . . . . . . . . . . . . . . . . . . . . . 24 2.3.3 Implémentation . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3 Cryptographies basés sur logarithme discret 28 3.1 DSA (Digital Sinature Algoriyhme) . . . . . . . . . . . . . . . . . . . 28 3.1.1 Principe de fonctionnement . . . . . . . . . . . . . . . . . . . 29 3.1.2 Exemple d'illustrations . . . . . . . . . . . . . . . . . . . . . . 30 3.1.3 Implémentation . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.2 Signature de Schnorr . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.2.1 Principe de fonctionnement . . . . . . . . . . . . . . . . . . . 32 3.2.2 Exemple d'illustrations . . . . . . . . . . . . . . . . . . . . . . 33 3.2.3 Implémentation . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.3 ECDSA(algorithme de signature utilisant des courbes elliptiques) . . 34 1
  3. 3. 3.3.1 compléments mathématiques . . . . . . . . . . . . . . . . . . . 35 3.3.2 ECDSA(Elliptic Curve Digital Signature Algorithm) . . . . . 39 3.3.2.1 Principe de fonctionnement . . . . . . . . . . . . . . 40 3.3.2.2 Exemple d'lustrations . . . . . . . . . . . . . . . . . 41 3.3.2.3 Implémentation . . . . . . . . . . . . . . . . . . . . . 42 3.3.2.4 Comparaison entre DSA et ECDSA . . . . . . . . . . 42 Conclusion et perspectives 45 Annexes 46 Glossaire 54 Bibliographie 55 2
  4. 4. 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
  5. 5. Liste des tableaux 2.1 Code de conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.1 Correspondance entre la notion de DSA et ECDSA.[22] . . . . . . . . 43 3.2 Correspondance entre F∗ p et le groupe E(Zp).[22] . . . . . . . . . . . . 43 4
  6. 6. Introduction La cryptologie, étymologiquement la science du cache par extension la science du secret, 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'écriture et fut justiée par le besoin de protéger tout message écrit an 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 ces vingt-cinq dernéres années que la cryptologie est devenue une science basée sur les mathématiques et l'informatique. Le développement des moyens de communication á l'échelle planétaire constitue aujourd'hui le moteur de la recherche publique en cryptologie. Les applications principales de la cryptologie sont bien sûr le chire- ment des messages pour en garantir la condentialité, mais aussi l'authentication á distance, la signature de documents numériques, et le contrôle de l'intégrité des messages transmis sur un réseau informatique.[1] La cryptologie répond aujourd'hui aux besoins du marché et constitue un do- maine scientique en pleine activité. Elle intervient dans de multiples applications (communication sécurisée sur internet, cartes bancaires, monnaie électronique, au- thentication 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éseau Internet.[2] Nous allons dans un premier temps présenter les composants de la cryptologie, puis nous aborderons en détails cinq algorithmes de chirement et de signature. Nous allons tenter, á travers le deuxiéme chapitre de traiter deux algorithmes cryptogra- phiques liées ou probléme de factorisation (Chirement de RSA et Rabin). Et dans le 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 un algorithme cryptographique liées ou probléme de logarithme discret sur les courbes elliptique (ECDSA) Dans chaque algorithme nous verrons quelques compléments et notions matématiques utilisées pour bien comprendre le principe de fonctionnement de ces algorithmes, ainsi que leurs dénitions, leurs principe de fonctionnement avec un exemple d'illustration et d'implntation sur Maple. 1
  7. 7. 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'un lexique 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 des techniques permettant de chirer des messages, c'est-à-dire permettant de les rendre incompréhensibles. Le fait de coder un message de telle façon à le rendre secret s'appelle chirement, la cryptographie répond aux besoins suivants :[3] • Condentialité : garantir que les données échangées ne sont dévoilées qu'aux personnes 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 un document sans qu'elle puisse le renier par la suite. Quant à la cryptanalyse, c'est le pendant naturel de la cryptographie : lorsqu'un système cryptographique est utilise, certains vont tenter de l'attaquer pour mettre en défaut sa sécurité. L'ensemble des attaques sur les cryptosystèmes est la cryptanalyse On peut aussi appeler cette action le cassage . [3] On distingue habituellement quatre méthodes de cryptanalyse [1] : • Une attaque sur texte chiré seulement consiste à retrouver la clé de déchif- frement à partir d'un ou plusieurs textes chirés; • Une attaque sur texte clair connu consiste à retrouver la clé de déchirement 2
  8. 8. à partir d'un ou plusieurs textes chirés, connaissant le texte en clair corres- pondant; • Une attaque sur texte clair choisi consiste à retrouver la clé de déchirement à partir d'un ou plusieurs textes chirés, l'attaquant ayant la possibilité de les générer à partir de textes en clair; • Une attaque sur texte chiré choisi consiste à retrouver la clé de déchirement à partir d'un ou plusieurs textes chirés, l'attaquant ayant la possibilité de les générer à partir de textes en clair.[4] 1.1 Histoire de la cryptographie Les premières méthodes de chirement : 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'oublions pas qu'il n'y avait là aucun manuel ou aucune aide quelconque car la cryptographie n'existait pas encore vraiment). Ainsi, le risque que les messages codés ne soient découverts et décodés par d'autres personnes était faible. En eet, la plus grande partie des gens n'auraient même pas pu imaginer ce concept et même s'ils y avaient songé, 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 importantes ayant 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 pas standards racontant la vie de son maître. Le but n'était pas de rendre le texte incompréhensible mais plutôt de lui donner un caractère plus solennel. 1600 av. J.-C. Le premier document chiré connu remonte à l'Antiquité. Il s'agit d'une tablette d'argile, retrouvée en Irak. Un potier y avait gravé sa recette secrète en supprimant des consonnes et en modiant l'orthographe des mots. 600 av. J.-C. Un roi de Babylone écrit sur le crâne rasé de ses esclaves, attend que leurs cheveux aient repoussé, et les envoie à ses généraux. Il sut ensuite de raser à nouveau le messager pour lire le texte. 600 av. J.-C. La Mésopotamie, grande civilisation de l'antiquité, avait atteint un niveau cryptologique étonnamment moderne. On a retrouvé en Iran des fragments de tablettes où des nombres correspondaient à des mots. 500 av. J.-C. Des scribes hébreux emploient le ATBASH, un simple algorithme de chirement par substitution utilisant l'alphabet renversé, an de transcrire le livre de Jeremiah. (Par exemple bonjour devient ruojnob ). 3
  9. 9. 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 on enroulait une longue et mince bande de cuir sur laquelle on écrivait notre message secret (souvent codé). Une fois la bande déroulée, il était dicile de retrouver le message. Seule le destinataire, connaissant le diamètre du bâton de celui ayant servi à écrire le message, pouvait le déchirer. Figure 1.1 Une Scytale La principale faiblesse de ce système est qu'un bâton de diamètre approximati- vement égal sut à déchirer le texte. La sécurité reste donc sur le secret autour du procédé de chirement 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 enn l'initiative de développer les techniques de protections des informations condentielles de façon plus ecace. 150 av. J.-C. Polybe, historien grec, imagine procédé de chirement très inno- vant pour son temps. Cette méthode utilise un système de transmission basé sur un carré de 25. Cependant l'alphabet français contient 26 lettres donc il faut supprimer une lettre, en général il s'agit du W. Les cryptologies modernes ont vu dans cette méthode plusieurs caractéristiques très intéressantes dont la conversion de lettres en chires, 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 eet il décalait la lettre qu'il souhaitait coder de 3 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 chirement pour cacher les parties importantes de certaines recettes. 4
  10. 10. 1499 Jean Trithème (1462-1516), ancien abbé, est considéré comme un des pères de la cryptographie. En eet, 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 message au sein d'un autre message) où les lettres sont remplacées par des mots choisis de maniè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èmes de 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 chirer un message. On peut résumer ces décalages avec un carré de Vigenère. Ce chire utilise une clé qui dénit le décalage pour chaque 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é et donc la complexité. Les méthodes de cryptographies se sont décuplées et la diculté de cassage du code également. Cependant, la cryptographie a évolué uniquement dans 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 (traduisez masque jetable) aussi appelé chire de Vernam. En eet il fonctionne sur le même principe que le chirement de Vigenère, avec quelques règles supplémentaires : Une clé ne doit être utilisée qu'une seule fois, elle doit être de la même taille que le message et elle doit être générée aléatoirement. Ce système est donc reconnu comme étant l'algorithme de chirement le plus sécuritaire. Cependant la communication des clés pose problème car n'oublions pas que la clé doit être de la même taille que le message codé, il est donc hors de question d'utiliser Internet comme passerelle. Pour donner un exemple, on peut penser à la valise diplomatique que les gouvernements utilisent 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 point une machine nommée Enigma qui sert à encoder des messages. Pendant la guerre, des versions d'Enigma sont utilisées pour pratiquement toutes les communications radio allemandes ainsi que pour les communications télégraphiques. Même les bulletins météos sont codés avec Enigma. Elle continuera à être utilisée dans l'armée encore jusqu'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 à presque tout le monde, avantageant énormément la créativité et la nouveauté et donc la complexité. Les méthodes de cryptographies se sont décuplées et la diculté de 5
  11. 11. cassage du code également. Cependant, la cryptographie a évolué uniquement dans 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. 1976 IBM publie un algorithme basé sur Lucifer (l'une des premières méthodes de chirement moderne destiné à un usage civil). Il devient le DES (Data Encryp- tion Standard). C'est un chirement qui transforme des blocs de 64 bits avec une clé secrète de 56 bits au moyen de permutations et de substitutions. Le DES est considé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'agit d'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 condentielles (les informations échangées par les banques par exemple). La cryptographie a commencé à être utilisée à des ns personnels peu après la création de l'Internet. En eet le cyberespace s'est énor- mément développé et s'est ouvert au grand public permettant par exemple l'envois de messages électroniques. Certaines personnes désirent alors que le contenu de ces messages reste discret. Cela est devenu possible grâce à certains logiciels qui sont distribués gratuitement sur l'Internet, permettant au grand public de se servir de la cryptographie. 2000 L'AES (évolution de l'algorithme Rijndael) devient le standard du chire- ment avancé pour les organisations du gouvernement des Etats-Unis. 2005 La cryptographie quantique, qui repose sur la physique quantique, serait considérée comme sûre à presque 100%. Ce sera peut-être la méthode du futur car elle est toujours en cours d'expérimentation.[5] 1.2 Le chirement symétrique et asymétrique Il existe actuellement deux grands systèmes cryptographiques : ceux à chirement symétrique (dits à clé secrète) et ceux à chirement asymétrique (dits à clé publique). Le chirement symétrique Si la clé est unique, elle sert à chirer et à déchirer le message; on parle alors de chirement symétrique. Les algorithmes symétriques actuels utilisent une succession de transpositions et de substitutions complexes des valeurs du message, basées sur 6
  12. 12. des opérations mathématiques et réalisées en plusieurs passes. La clé faisant partie intégrante de la fonction, il est impossible d'inverser l'algorithme sans elle, et les seules attaques envisageables consistent souvent à essayer toutes les valeurs de clés possibles. C'est la raison pour laquelle une clé symétrique susamment importante (128 bits) et bien choisie est considérée comme sûre. L'algorithme symétrique le plus célèbre est le DES (Data Encryption Standard, qui fonctionnait avec des clés de 64 bits) remplacé depuis par l'AES (Advanced Encryption System, qui fonctionne avec des clé allant jusqu'à 256 bits). Les chirements symétriques exigent toutefois que les deux correspondants échangent au préalable la clé secrète par un canal sûr, ce qui 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 peuvent tous deux ouvrir et fermer cette boite. Le chirement asymétrique L'algorithme asymétrique dissocie les fonctions de chirement et de déchirement en deux clés. Ce que l'une chire, seule l'autre peut le déchirer. Aucune autre clé même celle qui a réalisé le chirement, ne peut y parvenir. Ainsi, chacun peut diuser librement l'une de ses deux clés (dite publique ) an que n'importe qui puisse chirer 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 le chirement 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 directement au propriétaire.[9] Un cryptosystéme à clef publique se comporte comme un core fort dont seul une personne possède la clef. Il laisse son core ouvert à disposition de toute personne désirant lui envoyer un message, celle ci referme lors la porte et seul le destinataire peut ensuite l'ouvrir. En pratique, le destinataire publie à l'intention de ceux qui veulent lui envoyer des messages une méthode de chirement que lui seul est capable de déchirer. 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'elle ore une méthode d'utilisation des signatures numériques. 1.3 La signature La signature numérique est un mécanisme qui permet d'authentier 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 les fonctions de hachage. C'est en eet par l'association de ces deux techniques que nous 7
  13. 13. pouvons obtenir les cinq caractéristiques d'une signature (authentique, infalsiable, non réutilisable, inaltérable, irrévocable). Le signature numérique peut aussi être utilisée à estamper les documents avec le cachet du temps (quelqu'un de conance signe le document et son cachet du temps avec sa clef-privée, donc il témoigne que le document a existé au temps énoncé), elle peut aussi être utilisées pour témoigner (ou certier) qu'une clef-publique appartient à une personne particulière. Cela est fait en signant la combinaison de la clef-publique et l'information au sujet de son propriétaire par une clef-privée de quelqu'un de conance. La signature numérique par un troisième parti (le propriétaire de la clef- privée de conance), la clef-publique et l'information au sujet du propriétaire de la clef-publique sont souvent appelées des certicats.[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 signature numérique est pratiquement infalsiable. De plus, elle atteste du contenu des infor- mations, ainsi que de l'identication 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 fonction de 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érier la validité du document, B doit tout d'abord déchirer la signa- ture en utilisant la clé publique de A. Si cela ne fonctionne pas, c'est que le document 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ême fonction de hachage qu'A (On supposera qu'ils suivent un protocole établi au pré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 sommes donc 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 signier que : 8
  14. 14. 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ête ou à 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 chier indépendant des données à signer. Signature enveloppante Pour eectuer une signature enveloppante, il faut ajouter les données à signer dans un élément Object qui sera inclus à la signature. Cet élément doit posséder une 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 eectuant 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'inclure le bloc de la signature ainsi générée dans la signature à contre-signer. An de pou- voir contre-signer une signature, il est nécessaire d'ajouter un ID sur la valeur de la signature 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 en un résumé court, de taille xe. L'image d'un message par une fonction de hachage s'appelle le condensé du message, L'empreinte du message, le résumé du message 9
  15. 15. ou encore le message haché. Une fonction de hachage doit posséder deux qualités indispensables [1] : • Résistance à la détermination d'une préimage, ce qui signie qu'il doit être impossible en pratique, à partir d'un résumé m, de trouver un message M ayant ce résumé, c'est-à-dire tel que m=h(M) , l'impossibilité en pratique dont nous parlons ici, fait référence à la diculté calculatoire de l'opération en question. 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 signie qu'il est impossible en pratique de construire 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 message en un message court, la fonction h n'est certainement pas injective. Donc les deux proprié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, ou de provoquer des collisions. Cependant l'inextricabilité des calculs n'est assurée que si la taille xe des images de la fonction h est susamment grande. Une taille de 128 bits est maintenant considérée comme trop courte et il est conseillé de prendre au 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 de 160 bits. • MD5 : (Message Digest) donne une empreinte sur 128 bits. • SHA-224, SHA-256, SHA-384, SHA-512 : Ce sont des améliorations de SHA-1. Les trois dernières fonctions fournissent une résistance aux attaques brutales 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 le projet NESSIE. • Whirlpool : Cette fonction a une sortie de 512 bits. Whirlpool a été retenue par 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éenne via son programme IST (pour Information Society Technologies), dans le but de participer à l'évaluation de l'AES américain et de favoriser l'émergence de nouvelles primitives cryptographiques (fonctions de chirement symétrique et asymétrique, fonctions de hachage, fonctions de signature électronique, etc.) à destination des 10
  16. 16. industriels européens. Les cryptosystèmes est basée sur des problèmes mathématiques diciles à ré- soudre tel que la factorisation et le problème de logarithme discret. Le principe d'un protocole cryptographique est qu'il doit être simple de chirer un message, mais qu'il doit être très dicile voire impossible à déchirer 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 la factorisation ainsi que d'autres basés sur le logarithme discret. 11
  17. 17. Chapitre 2 Cryptographies basés sur la factorisation La factorisation est un problème algorithmique dont la solution est dicile à trouver, il est facile de trouver deux grands nombres premiers p et q et de calculer leur produit N = p × q. En revanche, le problème consiste à retrouver p et q en connaissant 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 cela on va traiter dans un premier temps les compléments mathématiques qui on va utiliser dans ces cryptosystèmes et par la suite on va aborder en détail ces deux cryptosystè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 sens où il n'admet pas de factorisation non triviale.(1) L'étude des nombres premiers fait partie 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 ne fonctionnent que si les nombres utilisés sont des nombres premiers. En eet il est très facile de multiplier deux nombres premiers très grands, mais l'inverse, retrouver les deux nombres premiers en ne connaissant que le produit, est bien plus délicat même avec la connaissance de nombre de chires qui composent chacun de ces deux nombres premiers.[11] 12
  18. 18. 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 de Mersenne, comporte 17425170 chires. La découverte a été possible grâce à 98980 personnes et 574 équipes du projet GIMPS où 730562 processeurs travaillent de concert. 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 autres ordinateurs du projet. Il s'est donc vu attribuer une prime de 3000 dollars versée par l'Electronic Frontier Foundation. Avis aux amateurs, 250000 dollars sont promis à celui qui trouvera un nombre composé d'un milliard de chires 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 commun diviseur de a et b, noté pgcd(a, b), comme étant le plus grand nombre positif qui divise à la fois a et b. [23] Exemple 1. On a pgcd(12, 14) = 2. En eet, 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 commun diviseur 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 la convention 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 premiers entre-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 eectuant des divisions euclidiennes successives calculer pgcd(a, b). 13
  19. 19. Comme b =0, a=b ×q1+ r1, pgcd(a,b)=pgcd(b,r1), 0≤r1 |b| Si r1 =0, b=r1 ×q2+ r2 , pgcd(b,r1) = pgcd(r1,r2) , 0 ≤r2 r1 Si r2=0, r1 = r2 ×q3+ r3 , pgcd(r1,r2) = pgcd(r2,r3) , 0 ≤r3 r2 ... Si rn−1 =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 dernier reste non nul. Comme les restes forment une suite de nombres naturels strictement dé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 entiers x et y tels que ax + by = pgcd(a, b) L'algorithme d'Euclide étendu décrit ci-dessous permet 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 plus grand commun diviseur (PGCD), mais aussi un de leurs couples de coecients de Bézout.[7] Exemple1 pour calculer de pgcd(255, 141), On eectue 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
  20. 20. Alors le pgcd de 255 et 141 est 3. Exemple2 calcule les coecients de Bezout a et b tel que : 255 + 141 = pgcd(255, 141) = 3, Il sut 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) =1 Alors : a=p−1 mod q et b =q−1 mod p. 2.1.3 Congruences,L'exponentiation rapide et Théorème d'Euler Congruences Dénition : Soit n un entier strictement positif. On dit que deux nombres entiers a et b sont congrus modulo n si b − a est divisible par n. On note alors a ≡ b mod n ou a = b mod n.[23] Proposition : a ≡ b mod n équivaut à dire que le reste de la division euclidienne de a par n est le même que celui de la division euclidienne de b par n. Parfois, b est appelé 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 tous les résidus modulo n. Ce qui signie que, pour tout entier quelconque a, son résidu modulo n est un nombre compris entre 0 et n−1 bornes comprises. On a les formules suivantes : (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 et c ≡ d mod n. On a alors les résultats suivants : 15
  21. 21. • 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évations au 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 chire le plus à droite, soit k = 0 et pour chaque chire : • Si le chire est 1, nous gardons le terme 2k , sinon nous ne le gardons pas. • Ajouter1 à k et on analyse le chire 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ées du 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
  22. 22. 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 mod 19 = 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 a premier 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 naturels infé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 que le cas où n est un nombre premier).Ce théorème permet simplement la réduction modulo n de puissance. Exemple : si on veut trouver le chire des unités de 7222, c'est-à-dire trouver à quel nombre entre 0 et 9 est congru 7222 modulo 10, il sut de voir que 7 et 10 sont premiers entre eux, et que ϕ(10) =φ(2 × 5) = (2 − 1) ×(5-1)= 4. Le théorème d'Euler nous indique 74 ≡ 1 mod 10. On en déduit que : 7222 ≡ 7455+2 ≡ (74 )55 × 74 ≡ 155 ≡ 72 ≡ 49 ≡ 9 mod 10. Le chire 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 premiers supé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 modulo M = m1×m2×...×mn donnée par la formule : x = (a1 × M1 · y1 + ... + an · Mn · yn) mod M. 17
  23. 23. 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érier cette solution en introduisant x dans le système d'équations. 2.2 Chirement de RSA Le cryptage RSA, du nom de ses concepteurs, Ron Rivest, Adi Shamir et Leonard Adleman, est le premier algorithme de chirement asymétrique. Il a été découvert en 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 bancaires et bien sûr le réseau Internet pour assurer la condentialité du courrier électro- nique et authentier les utilisateurs et aussi la protection de dossiers hautement condentiels.[12] Le RSA est basé sur la théorie des nombres premiers , et sa robustesse tient du fait qu'il n'existe aucun algorithme de décomposition d'un nombre en facteurs premiers. Alors qu'il est facile de multiplier deux nombres premiers, il est très dicile de 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 signie que l'algorithme de calcul n'est pas caché, ni la clé de codage (appelée de ce fait clé publique).La connaissance 18
  24. 24. de la clé publique du destinataire permet à tous les émetteurs de crypter les messages qui 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 et q . Ces deux nombres doivent être très grands, car ils sont la clé de voûte de notre cryptage. Une fois ces deux nombres déterminés, multiplions-les. On note n le produit n = 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 nous noterons d. avec d ≡e−1 mod φ(n).[14] Alors : La clé publique :c'est le couple (n,e). La clé privée :c'est le couple(n,d). Chirement • Avant d'être chiré, 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 entier M il sut de le mettre à la puissance e . C ≡Me mod n. (C = Me modulo n est calculé grâce à la méthode d'exponentiation modulaire. • Le message chiré est constitué de la succession des entiers C. Déchirement • Conformément à la manière dont il a été chiré, le message reçu doit être composé 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'entiers M. 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
  25. 25. • Cherche une valeur e inferieur à φ(n), et qui doit être premier avec cette derniè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). Chirement La relation de chirement est : c= me mod n. A désire envoyer un message m secret à B . Ce dernier lui a fait connaître ses clefs publiques et elle va les utiliser pour chirer le texte suivant : m = MASTER IT . Tout d'abord il faut convertir le message à envoyer en chires et pour cela on considè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 M 26 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 Z 27 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écomposer d'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 chire les blocs obtenu par la relation c= me mod n avec le couple (e, n) est la clé public de B, et on obtient les résultats suivants : C1= me 1 mod n = 1200187185583 mod 9144407 = 6284322 mod 9144407. C2= me 2 mod n =1904177185583 mod 9144407 = 2986033 mod 9144407. C3= me 3 mod n = 0819267185583 mod 9144407 = 8193899 mod 9144407. Alors A envoie à B le message chiré suivante : C= 6284322 2986033 207847 . Déchirement La relation de chirement est : m =cd mod n. 20
  26. 26. B reçoit le message C ,et utilise sa clé privé (d, n) pour déchirer le message C. Et par la suit on trouve les résultats suivants : m1= cd 1 mod n = 62843227449007 mod 9144407= 120018 mod 9144407 . m2= cd 2 mod n = 29860337449007 mod 9144407= 190417 mod 9144407. m3= cd 3 mod n =2078477449007 mod 9144407= 081926 mod 9144407. Alors le message déchiré 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 message envoyé par A qui est : MASTER IT*. 2.2.3 Implémentation On utilise un exemple d'implémentation pour chirer le message suivante : m=bonjour mes chers amis j'espere que vous allez bien. Génération des clés Chirement 21
  27. 27. Déchirement 2.3 Chirement de Rabin Michael Oser Rabin (né en 1931 à Breslau en Allemagne, maintenant Wrocªaw en 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 la diculté du problème de la factorisation nomme par cryptosystème de Rabin, qui est 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 époque que RSA ( Rivest, Shamir et Adelman )qui est également basée sur la diculté de factoriser 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 de chirement de Rabin n'est jamais devenu populaire parce que, dans la pratique RSA est à peu près aussi forte, et que RSA a d'abord été d'environ un an, et parce que le système de chirement de Rabin nécessite un travail supplémentaire pour lever l'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 une clef 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 par le 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 premiers distincts et congrus à 3 modulo 4 (nous verrons plus loin le pourquoi de cette condition). • Clé public : c'est n avec n le produit de deux nombres premiers p et q. Chirement Pour chirer un message il faut suivi les étapes suivant : 22
  28. 28. • 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 chiré C au récepteur. Déchirement Le problème de décryptage du point de vue récepteur, il est donné le message chirer 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ées des résidus quadratiques modulo p. Supposons C est un résidu quadratique modulo p, où p ≡ 3 mod 4. Ensuite, nous avons que : (± C p+1 4 )2 ≡ C p+1 2 mod p ≡ C p−1 2 C mod p ≡ C mod p Ici, nous avons utilisé le critère d'Euler, alors C p−1 2 ≡ 1 mod p . Donc, les deux racines carrées de C modulo p sont mp=± C p+1 4 mod p. De la même façon, les deux racines carrées de C modulo q sont mq=± C q+1 4 mod q. Il est alors facile d'obtenir les quatre racines carrés de C modulo n on utilisant le théorème des restes chinois,après déterminer les valeurs de a et b par l'algorithme d'Euclide étendu. Maintenant, les quatre racines carrées d'après le théorème des restes chinois sont : 23
  29. 29. M1=(a × p × mq +b × q × mp ) mod n M2=-M1 = n − M1 M3=(a × p × mq -b × q × mp ) mod n M4=-M3 = n − M3 Cet algorithme n'est pas injectif, pour un message chiré reçu il y a quarts messages clairs dont il peut provenir. Dans la pratique, seul un des 4 messages aura un sens donc il n'y aura pas d'ambigüité. Néanmoins cela peut poser problème pour automatiser le déchirement, pour contourner cette diculté on va introduire de la redondance dans le message clair. Il y a de multiples façons de le faire, par exemple on peut redoubler les 64 derniers bits, avec une très grande probabilité une seule des quartes 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 et q = 6947 (on peut vérier 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. Chirement La fonction de chirement 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 trouve m'=120018190417260819, puis on découpe m en bloc inférieur à n-1 on trouve les blocs m1=120018 et m2=190417 et m3=260819 la seul chose ajouté c'est que A marque chacun des blocs en ajoutant le symbole # (qui équivalent à 27 d'après le tableau qu'on a utilisé) au début de chaque bloc pour faciliter la tache à B an de trouver le message m. Alors le message à chirer est constitué par trois blocs suivants : m1=27120018 , m2=27190417 , m3=27081926. A par la suite chire les blocs obtenu par la relation c= m2 mod n et on obtient les résultats suivants : c1= m2 1 mod n = 271200182 mod 48010717 = 46321241 mod 48010717. c2= m2 2 mod n = 271904172 mod 48010717 = 17165077 mod 48010717. 24
  30. 30. c3= m2 3 mod n = 270819262 mod 48010717= 38744261 mod 48010717. Alors A envoie à B le message chiré suivante : C = 46321241 17165077 38744261. Déchirement B reçoit le message C .Alors pour déchirer le message C il faut calculer tout d'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 relations suivants : 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 relations suivantes pour trouver le message déchiré. M1=(a × p × mq +b × q × mp ) mod n M2=-M1 = n − M1 M3=(a × p × mq -b × q × mp ) mod n M4=-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 mod 48010717. M2= n- M1 = 48010717 - 42639616 mod 48010717 =5371101 mod 48010717. M3= (584 × 6911 × 3036 − 2432 × 6947 × 2572) mod 48010717= 27120018 mod 48010717. 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
  31. 31. 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 mod 48010717. M4=n − M3=48010717 − 35138067= 12872650 mod 48010717. De même la bonne valeur est celle qui commence par 27, ici c'est 27190417. Une fois 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 mod 48010717. M2=n − M1= 48010717 − 27081926=20928791 mod 48010717. M3=(584 × 6911 × 2520 − 2432 × 6947 × 4628) mod 48010717=19961251 mod 48010717. 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échirer est MASTRE IT∗ . 2.3.3 Implémentation On utilise un exemple d'implémentation pour chirer le message suivante : m=bonjour mes chers amis j'espere que vous allez bien. 26
  32. 32. Génération des clés Chirement Déchirement 27
  33. 33. Chapitre 3 Cryptographies basés sur logarithme discret Le problème du logarithme discret est un autre problème algorithmique dicile à rèsoudre,le problème est le suivant : étant donné y ∈ G, trouver x ∈ N tel que gx = 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 par rapport à la base P est : étant donné Q ∈ E, de trouver x ∈ N tel que Q = x · P si un tel x existe.[17] Dans ce chapitre on va traiter dans la premier partie deux cryptosystèmes basés sur 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 ECDSA qui 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 la NSA) 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é à être utilisé 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 à clef publique, 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
  34. 34. 3.1.1 Principe de fonctionnement Le DSA est similaire à un autre type de signature développée par Schnorr . Il a aussi 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érication du document signé. Une signature numérique DSA est calculé en utilisant un ensemble de paramètres de 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érier, et la même fonction de hachage qui a été utilisée lors de la génération de signature.[18] Génération des clés La sécurité de DSA repose sur la diculté du problème du logarithme discret dans un groupe ni. • Choisir un nombre premier p de longueur L tel que 512 ≤ L ≤ 1024, et L est divisible par 64. • Choisir un nombre premier q de 160 bits, de telle façon que p1 = qz, avec z un entier. • Choisir h, avec 1 h p1 de manière à ce que g = hz mod p 1 avec g c'est le 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 hachage cryptographique. 29
  35. 35. La signature de message m est (r ,s). La vérication • 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 peut y 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ée signataire) a peut-être tenté de forger la signature. La signature doit être considérée comme 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
  36. 36. 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érication 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 mod 23) 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ériction 3.2 Signature de Schnorr Le schéma de Schnorr [1] est un protocole d'authentication , dont la sécurité repose sur le problème du logarithme discret. Une particularité importante de ce schéma est que les tailles de la clé privée et des valeurs transmises par le prouveur 31
  37. 37. sont réduites à leur minimum. L'astuce utilisée pour y parvenir sera reprise par le NIST, lorsqu'il spéciera le standard fédéral DSA (Digital Signature Algorithm). Le schéma de Schnorr est décrit dans la norme ISO/IEC 9798 − 5 , tandis que le DSA est 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 processus DSA : • Génération des clés. • Signature du document. • Vérication 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 q divise (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 || signie la concaténation. • Calculer s = k + xe mod q. La signature de message m est (e ,s). 32
  38. 38. La vérication Pour vérier une signature (e, s) sur m on calcule u par la relation suivante : • Calcule u= gs y−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 simplication). • s = k + xe mod q = (5 + 7 × 10) mod 11 = 9 mod 11. La signature de message m est (10 ,9). La vérication Destinataire prouver signatures numériques dans le calcul : • u= gs y−e mod p = 39 × 2−10 mod 23= 13mod 23. La signature est acceptée car e =H(m||u)= H(913) . 33
  39. 39. 3.2.3 Implémentation On utilise un exemple d'implémentation pour signe un message m. Géneration des clés Signature Vériction 3.3 ECDSA(algorithme de signature utilisant des courbes elliptiques) Neal Koblitz et Victor S. Miller ont été les premiers à proposer l'utilisation des courbes elliptiques dans la cryptographie. Cela a donné lieu à la cryptographie des courbes elliptiques (ECC, Elliptic Curve Cryptography), qui est une cryptographie asymé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èmes les plus importants en cryptographie. Après vingt ans de cryptanalyse infructueuse, ce problème semble beaucoup plus dicile à résoudre que les deux autres problèmes très utilisés en cryptographie (le problème de la factorisation d'entiers et le problème du 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'algorithme de 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
  40. 40. 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érication de signature ECDSA est la multiplication scalaire dans le corps des courbes elliptiques. Cette dernière est basé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 Digital Signature Algorithm). Courbe elliptique Dénition Soit p 3 avec p un nombre premier impair. Une courbe elliptique E sur Z/pZ est dénie par une équation de la forme : E : y3 = x3 + ax + b. Où a, b ∈Fp, et 4 · a3 + 27 · b2 = 0 mod p. L'ensemble E(Fp) se compose de tous les points (x, y), x ∈Fp, y ∈ F qui satisfont l'équation de dénition E, avec un point spécial O appelé point à l'inni.[20] Exemple : Soit p = 23 et considérer la courbe elliptique E : y2 mod 23 = x3 + x + 4 mod 23 dénie sur F23. Notez que 4a3 + 27b2 = 4432 = 436 ≡ 22 mod 23, alors E est un une 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
  41. 41. Addition, Négation et Doublement • Addition Soient P = (x1, y1) et Q = (x2, y2) deux points de E tels que P = Q.Pour trouver la somme de P et Q, on se sert de la droite qui passe par ces deux points et qui ne coupe la courbe qu'à un troisième point R = (x3, y3) .La somme de P et Q devient la point −R le point symétrique á R par rapport a l'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 la somme P + Q = (x3, y3) et le suivant : x3 = (11−7 13−4 )2 − 1 − 13 = −8 ≡ 15 mod 23. y3 = (11−7 13−4 )(4 − 15) − 7 = −40 ≡ 6 mod 23. Et par la suit P + Q = (15, 6). 36
  42. 42. • Négation Soient P = (x1, y1) et Q = (x2, y2) deux points de E tels que P = −Q. Si on essaye d'appliquer la méthode géométrique précédente à la somme de P et Q, 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'inni comme étant le point inniment éloigné dans la direction de l'axe y. Ce point, noté O, devient le troisiè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' inni O représente l'élément neutre du groupe additif. 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 courbe elliptique P − P=O • Doublement Soit P = (x1, y1) ∈ E tel que y1 = 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 la courbe qu'a un point −R = (x3, y3). Le point P + P = 2P devient le point R = (x3, y3). Algébriquement, le point R(x3, y3) est calculé de la manière suivante : 37
  43. 43. 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 · x2 1 + a)/(2y1). Dans le cas ou y1 = 0, la tangente devient une droit vertical qui ne coupe pas la 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 + 4 mod 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 :étant donné un k ∈ n et P ∈ E le prouduit KP est :[20] KP =P + P + · · · · · · · · · · · · + P K fois 38
  44. 44. 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érier que le point P appartient bien à la courbe elliptique E. On peut remplacer 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ès l'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 les courbes elliptiques. C'est une adaptation de DSA, qui est un algorithme utilisant un groupe multiplicatif d'entiers modulaires. Tous les deux sont basés sur le problème du logarithme discret. Cette algorithme a été proposé en 1992 par Scott Vanstone, en réponse à un appel d'ore pour les signatures numériques du NIST (National Institute of Standards and Technology). Vanstone fonda la société Certicom en 1985, et son entreprise détient la 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 National Standards Institute) et a été publié comme norme internationale dans le document ANSI X9.62, et accepté en 2000 comme IEEE (Institute of Electrical and Electro- nics Engineers) standard (IEEE 1363-2000) et les normes FIPS(Federal Information Processing Standar) (FIPS 186-2). Il est également à l'étude pour inclusion dans d'autres normes ISO.[20] 39
  45. 45. 3.3.2.1 Principe de fonctionnement Pour utiliser le protocole ECDSA, les parties doivent s'accorder sur un ensemble d'éléments qui dénissent la courbe elliptique (p,Ep(a, b),G, n). Chaque participant gé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 choisis de 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 groupe sont :{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) eectue 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 hachage SHA − 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érication Pour vérier 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 eectue par la suit les opérations suivantes : • Calculer e = h(m). • Calculer u1= e · s−1 mod n. 40
  46. 46. • 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ée par 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−1 G + rs−1 dG = 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 par E : 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
  47. 47. Alors le paire (r, s)=(31167, 82722). La vérication • 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 mod 114973. • 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ériction 3.3.2.4 Comparaison entre DSA et ECDSA Conceptuellement, le ECDSA est simplement obtenue à partir de la DSA en remplaçant le sous-groupe de l'ordre q de Zp généré par g avec le sous-groupe de points sur une courbe elliptique qui sont générés par G. La seule diérence signicative entre ECDSA et DSA est dans la génération de r. Le DSA fait en prenant l'aléatoire X =gk mod p , Et la réduction modulo q, en 42
  48. 48. obtenant ainsi un nombre entier dans l'intervalle [1,q − 1]. Le ECDSA génère r dans l'intervalle [1, n − 1] en prenant la x-coordonnée du point aléatoire KG et en la réduisant modulo n.[18] les deux tableaux suivants fait la correspondance entre les notions d'ECDSA et DSA. Notation DSA Notation ECDSA q n g G x d y 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) et point à l'inni O la loi de composition multiplication modulo p l'addition des points notation élément : g, h multiplication : g × h inverse : g−1 exponentiation : ga élément : P, Q addition : P + Q négation : −P multiple :aP probléme du loga- rithme discret soient g ∈ Z∗ p et h = ga mod p, trouver a Soient P ∈ E(Fp) et Q = 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 falsication sélective d'un message si l'adversaire peut choisir les paramètres du système. En ECDSA, il est obligatoire de vérier, 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érication ou du problème sur lequel repose la sécurité de l'algorithme utilisé. Le schéma ECDSA utilise des clés plus courtes et est le plus rapide en vérication 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ème du logarithme discret sur courbe elliptique est un problème plus récent et donc 43
  49. 49. moins étudié que celui sur corps ni. De plus, le schéma DSA n'a pas de preuve des sécurités, contrairement à RSA et ECDSA. Le tableau suivant présente une comparaison des temps de calcul en millisecondes pour une signature et une vérication de signature sur un ordinateur équipé d'un processeur Pentium III 900 MHz avec 256 Mo de RAM. 44
  50. 50. 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 de RSA et Rabin ), et les cryptographies liées au problèmes de logarithmes discret qui se 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 nous a permis de comprendre le fonctionnement de ces cryptosystèmes ainsi que leurs implémentations sur Maple. Ce projet nous a donné aussi l'opportunité de se familiariser avec l'environnement de Maple ainsi que celui de Latex . 45
  51. 51. Annexes Cryptographies basés sur la factorisation Chirement de RSA 46
  52. 52. 47
  53. 53. Chirement de Rabin 48
  54. 54. Cryptographies basés sur logarithme discret Signature de DSA 49
  55. 55. Signature de Schnorr 50
  56. 56. 51
  57. 57. Signature de ESDSA 52
  58. 58. 53
  59. 59. Glossaire • Cryptographie :Art de chirer et de déchirer les messages. • Cryptanalyse :Art de décrypter les messages chirés. • Cryptologie :Science qui étudie les deux arts précédents. • Clé privèe :Information personnalisante, connue seulement des personnes autorisées. • Clé publique :Information personnalisante, connue de tout le monde. • Chirement(cryptage) :Opération transformant un texte clair en message chiré. • Déchirement(Décryptage) :Opération consistant à retrouver le texte clair à partir du chiré sans connaître la clé. • Fonction de hachage :Fonction transformant un message de taille arbitraire en 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 tout chirement, révélé après un décodage ou un décryptement réussi. • Texte chiré : c'est le texte obtenu après avoir appliqué l'algorithme de chirement sur le texte clair. 54
  60. 60. 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. CRC Press, 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 chirement 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 University Press, 27 mars 2014. [17] T. Favre .Cryptographie et courbes elliptiques.Master's thesis,Ecole polytech- nique federale de LAUSANNE, 2011 55
  61. 61. [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.Tunghai Science 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

×