Vous êtes sur la page 1sur 216

Cryptographie Paris 13

(version 2010/2011)
dapr`es un cours de Daniel Barsky & Ghislain Dartois
1 octobre 2010
Resume
Le but de ce cours est une introduction `a la cryptographie moderne utilisee
dans la transmission et le stockage securise de donnees. Laccent mis sur les
principes et les outils mathematiques utilises (arithmetique, alg`ebre, algo-
rithmique, complexite, probabilite, theorie de linformation,..), ainsi que sur
les protocoles.
Les probl`emes informatiques, les produits et les normes sont decrits dans
des cours plus appliques (reseaux, securite reseaux,...)
Table des Mati`eres
1 Introduction et terminologie 7
1.1 Quest ce que la cryptographie . . . . . . . . . . . . . . . . . 8
1.2 Principes de Kerckhos . . . . . . . . . . . . . . . . . . . . . 10
1.3 Qualites dun cryptosyst`eme . . . . . . . . . . . . . . . . . . . 11
1.4 Attaques sur un chirement . . . . . . . . . . . . . . . . . . . 12
1.5 Dierentes notions de securite . . . . . . . . . . . . . . . . . . 14
2 Historique 15
2.1 Codes `a repertoire . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2 Codes de permutation ou de transposition . . . . . . . . . . . 16
2.2.1 Cryptanalyse des codes de permutation . . . . . . . . . . 18
2.3 Codes de substitution . . . . . . . . . . . . . . . . . . . . . . 19
2.3.1 Cryptanalyse des codes de substitution . . . . . . . . . . 20
2.3.2 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4 Le code de Vigen`ere . . . . . . . . . . . . . . . . . . . . . . . 21
2.4.1 Cryptanalyse des codes de Vigen`ere . . . . . . . . . . . . 22
2.4.2 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.5 Commentaires historiques . . . . . . . . . . . . . . . . . . . . 25
3 Quelques methodes de codage 27
3.1 Modes de chirement . . . . . . . . . . . . . . . . . . . . . . . 28
3.1.1 Mode ECB . . . . . . . . . . . . . . . . . . . . . . . . 28
3.1.2 Mode CBC . . . . . . . . . . . . . . . . . . . . . . . . 29
3.1.3 Mode CFB . . . . . . . . . . . . . . . . . . . . . . . . 30
3.1.4 Mode OFB . . . . . . . . . . . . . . . . . . . . . . . . 31
3.1.5 Mode CTR . . . . . . . . . . . . . . . . . . . . . . . . 31
4 Les codes modernes 35
4.1 Objectifs des codes actuels . . . . . . . . . . . . . . . . . . . . 36
2
TABLE DES MATI
`
ERES 3
4.2 Les familles de codes modernes . . . . . . . . . . . . . . . . . 37
4.3 Codes symetriques . . . . . . . . . . . . . . . . . . . . . . . . 37
4.4 Codes asymetriques . . . . . . . . . . . . . . . . . . . . . . . 38
4.5 Les echanges de clefs . . . . . . . . . . . . . . . . . . . . . . . 39
4.5.1 Protocole dechange de clefs . . . . . . . . . . . . . . . . 40
5 Applications de la cryptographie 42
5.1 Quel cryptosyst`eme choisir . . . . . . . . . . . . . . . . . . . 43
5.2 Quelques utilisations de la cryptographie . . . . . . . . . . . . 44
5.3 Quelles mathematiques pour la cryptographie . . . . . . . . . 44
5.4 Lutte contre le brouillage . . . . . . . . . . . . . . . . . . . . 45
6 Codes `a condentialite parfaite 47
7 Registres `a decalage 49
7.0.1 Registres `a decalages . . . . . . . . . . . . . . . . . . . . 49
7.0.2 Cryptage avec un LFSR . . . . . . . . . . . . . . . . . . 53
7.1 Utilisation pratique des LFSR en cryptographie . . . . . . . . . . 54
7.1.1 Syst`eme A5/1 . . . . . . . . . . . . . . . . . . . . . . . 56
7.1.2 Syst`eme bluetooth/E0 . . . . . . . . . . . . . . . . . . 57
8 Codes `a clefs secr`etes 62
8.1 Reseaux de substitution-permutation . . . . . . . . . . . . . . 63
8.2 Cryptanalyse lineaire . . . . . . . . . . . . . . . . . . . . . . . . 66
8.3 Cryptanalyse dierentielle . . . . . . . . . . . . . . . . . . . . . 74
8.4 Description de DES . . . . . . . . . . . . . . . . . . . . . . . 80
8.4.1 Schema de Feistel . . . . . . . . . . . . . . . . . . . . . 80
8.4.2 Quelques apects techniques de DES . . . . . . . . . . . . 81
8.5 Description dAES . . . . . . . . . . . . . . . . . . . . . . . . 82
8.5.1 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . 84
8.5.2 Quelques apects techniques dAES . . . . . . . . . . . . . 84
8.5.3 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . 90
8.5.4 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . 92
8.6 Infrastructure des syst`emes `a clef secr`ete . . . . . . . . . . . . 94
8.6.1 Exemple: protocole dacc`es HTTP . . . . . . . . . . . . . 95
8.7 Attaques contre les codes symetriques . . . . . . . . . . . . . 95
8.7.1 Attaques par recherche exhaustive . . . . . . . . . . . . . 96
8.7.2 Attaques dictionnaires . . . . . . . . . . . . . . . . . . . 96
8.7.3 Attaques repertoires . . . . . . . . . . . . . . . . . . . . 97
4 TABLE DES MATI
`
ERES
9 Codes `a clefs publiques 98
9.1 Principe des codes `a clef publique . . . . . . . . . . . . . . . . 99
9.1.1 Fonctions `a sens unique . . . . . . . . . . . . . . . . . . 99
9.2 Le cryptosyst`eme Merkle-Hellman . . . . . . . . . . . . . . . 99
9.2.1 Le probl`eme du sac-`a-dos . . . . . . . . . . . . . . . . . 99
9.2.2 Description du cryptosyst`eme Merkle-Hellman . . . . . . . 100
9.3 Le syst`eme RSA . . . . . . . . . . . . . . . . . . . . . . . . . 102
9.3.1 Description du cryptosyst`eme RSA . . . . . . . . . . . . 102
9.3.2 Protocole denvoi dun message en RSA . . . . . . . . . . 103
9.3.3 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . 104
9.3.4 Protocole de signature RSA . . . . . . . . . . . . . . . . 104
9.3.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . 106
9.3.6 Exemple academique de codes RSA . . . . . . . . . . . . 107
9.3.7 Exemple de code RSA . . . . . . . . . . . . . . . . . . . 109
9.3.8 Securite du syst`eme RSA . . . . . . . . . . . . . . . . . 110
9.3.9 Attaques du syst`eme RSA . . . . . . . . . . . . . . . . . 111
9.4 Le cryptosyst`eme El Gamal . . . . . . . . . . . . . . . . . . . 112
9.4.1 Description du cryptosyst`eme El Gamal . . . . . . . . . . 113
9.4.2 Signature El Gamal . . . . . . . . . . . . . . . . . . . . 114
9.4.3 Securite du syst`eme EL Gamal . . . . . . . . . . . . . . . 116
9.4.4 Exemple academique de code El Gamal . . . . . . . . . . 116
9.5 Cryptosyst`eme Elliptique Menez`es-Vanstone . . . . . . . . . . 118
9.6 Infrastructure des syst`emes `a clef publique . . . . . . . . . . . 119
9.6.1 Cryptographie basee sur lidentite . . . . . . . . . . . . . 122
9.6.2 Le protocole SSL . . . . . . . . . . . . . . . . . . . . . . 124
10 Fonctions de Hachage 127
10.1 Construction des fonctions de hachage . . . . . . . . . . . . . 128
10.1.1 Attaques des anniversaires . . . . . . . . . . . . . . . . . 129
10.1.2 Exemple academique de fonction de hachage . . . . . . . . 130
10.1.3 Fonction de hachage standard . . . . . . . . . . . . . . . 130
11 Protocoles cryptographiques 134
11.1 Protocoles de signature . . . . . . . . . . . . . . . . . . . . . 134
11.1.1 Protocole de signature `a clef privee . . . . . . . . . . . . 134
11.1.2 Protocole de signature `a clef publique . . . . . . . . . . . 136
11.2 Protocoles de datation . . . . . . . . . . . . . . . . . . . . . . 137
11.2.1 Protocole de datation . . . . . . . . . . . . . . . . . . . 137
11.3 Signature avec fonction de hachage . . . . . . . . . . . . . . . 138
11.4 Fonction de hachage et mot de passe . . . . . . . . . . . . . . 138
TABLE DES MATI
`
ERES 5
11.5 Preuve sans transfert de connaissance . . . . . . . . . . . . . 139
11.5.1 Preuve sans transfert de connaissances . . . . . . . . . . . 140
11.5.2 Transfert inconscient . . . . . . . . . . . . . . . . . . . . 142
12 La cryptographie et le droit 143
12.1 Textes juridiques sur la cryptographie . . . . . . . . . . . . . 143
12.1.1 LOI n

96-659 du 26 juillet 1996 . . . . . . . . . . . . . 143


12.1.2 LOI n

2004-575 du 21 juin 2004 . . . . . . . . . . . . . . 146


12.1.3 LOI n

2006-961 du 1er ao ut 2006 . . . . . . . . . . . . . 149


13 Rappels Mathematiques 151
13.1 Theorie de linformation . . . . . . . . . . . . . . . . . . . . . 151
13.1.1 Rappels de probabilites discr`etes . . . . . . . . . . . . . . 151
13.1.2 Condentialite parfaite . . . . . . . . . . . . . . . . . . . 152
13.1.3 Entropie . . . . . . . . . . . . . . . . . . . . . . . . . . 154
13.2 Theorie de la complexite . . . . . . . . . . . . . . . . . . . . . 156
13.2.1 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . 158
13.2.2 Decidabilite . . . . . . . . . . . . . . . . . . . . . . . . 158
13.2.3 Complexite algorithmique . . . . . . . . . . . . . . . . . 159
13.2.4 Algorithmes polynomiaux . . . . . . . . . . . . . . . . . 160
13.3 Rappels darithmetique . . . . . . . . . . . . . . . . . . . . . 162
13.3.1 La division euclidienne . . . . . . . . . . . . . . . . . . . 162
13.3.2 Plus Grand Commun Diviseur . . . . . . . . . . . . . . . 166
13.3.3 Algorithme du PGCD . . . . . . . . . . . . . . . . . . . 167
13.3.4 Les Congruences . . . . . . . . . . . . . . . . . . . . . . 170
13.3.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . 178
13.4 Tests de primalite . . . . . . . . . . . . . . . . . . . . . . . . 178
13.5 Methode de factorisation . . . . . . . . . . . . . . . . . . . . . 181
13.6 Rappels dalg`ebre . . . . . . . . . . . . . . . . . . . . . . . . . 183
13.6.1 Groupe, anneaux, corps . . . . . . . . . . . . . . . . . . 183
13.6.2 Anneau des polynomes . . . . . . . . . . . . . . . . . . . 187
13.7 Courbes elliptiques . . . . . . . . . . . . . . . . . . . . . . . . 197
13.7.1 Groupe des points dune courbe elliptique . . . . . . . . . 197
13.7.2 Endomorphismes . . . . . . . . . . . . . . . . . . . . . . 201
13.7.3 Courbes Elliptiques sur un corps ni . . . . . . . . . . . . 202
13.7.4 Points de torsion sur une courbe elliptique . . . . . . . . . 204
13.7.5 Laccouplement de Weil . . . . . . . . . . . . . . . . . . 205
Bibliographie 207
6 TABLE DES MATI
`
ERES
Index 209
Chapitre 1
Introduction et terminologie.
Lobjectif fondamental de la cryptographie est de permettre `a deux person-
nes appelees traditionnellement, Alice et Bob de communiquer `a travers
un canal peu s ur de telle sorte quun opposant passif

Eve ne puisse pas
comprendre ce qui est echange et que les donnees echangees ne puissent pas
etre modiees ou manipulees par un opposant actif Martin.
Apr`es un rapide historique de la cryptographie on examinera les princi-
paux syst`emes cryptographiques modernes utilises pour la transmission et
le stockage securise de donnees.
On ne sinteresse quaux syst`emes cryptographiques destines `a transmettre
des ux importants et varies dinformations (paiement securise par inter-
net, donnees bancaires, cartes de credit, protection des conversations entre
telephones mobile, WiFi,...) entre de nombreux interlocuteurs qui necessi-
tent des syst`emes cryptographiques structures et rapides.
On ne decrira pas de syst`emes cryptographiques reposant sur la dissimula-
tion de linformation secr`ete au sein dun document, dune image (stega-
nographie,...). Par contre on sinteressera `a la steganographie quand elle
est utilisee pout le marquage de document watermarking ou tatouage.
Le tatouage permet de proteger les possesseurs de copyright sur des docu-
ments numeriques en cachant une signature dans linformation de sorte que
meme une partie modiee du document conserve la signature et de decouvrir
lorigine de fuites en marquant de fa con cachee et unique chaque copie dun
document condentiel.
Un syst`eme cryptographique ne se con coit pas independamment des at-
taques dont il peut etre lobjet. On indiquera donc pour chaque syst`eme
cryptographique quelques attaques et sa resistance `a ces attaques.
Laccent sera mis sur les principes et les outils mathematiques utilises (arith-
metique, alg`ebre, algorithmique, complexite, probabilite, theorie de linfor-
7
8 CHAPITRE 1. INTRODUCTION ET TERMINOLOGIE
mation,..). Quelques protocoles seront decrits.
On evoquera rapidement les syst`emes dinfrastructure pour les Syst`emes `a
Clef Publique (Public Key Infrastructures ou PKI) et les syst`emes de Man-
agement des Clefs Secr`etes (Symmetric Keys Management). On evoquera
aussi quelques grands types de menaces et dattaques sur les syst`emes cryp-
tographiques.
Les probl`emes de mise en oeuvre informatique, les produits et les normes
sont decrits dans des cours plus appliques (reseaux, securite reseaux,...).
On emploiera indieremment les mots cryptographie, chirement et codage.
Les mots en gras gurent dans lindex `a la n du volume avec un renvoi `a
leur denition.
Ce cours sest beaucoup inspire des cours de Fran cois Arnaux, [2], Jean-
Louis Pons, [21], et Guy Robin, [24], des livres de Douglas Stinson, [31],
Neal Koblitz, [18], John Daemen et Vincent Rijmen, [8], Serge Vaudenay,
[32], Lawrence Washington, [33], Benne de Weger, [34] et Gilles Zemor [37],
des deux tomes de louvrage collectif edite par Touradj Ebrahimi, Franck
Leprevost, Bertrand Warusfel, [11], [12] et darticles de WIKIPEDIA ainsi
que de louvrage de Simon Singh, [29], pour la partie historique.
1.1 Quest ce que la cryptographie.
La cryptographie ou science du secret est un art tr`es ancien, cest
lart de remplacer un secret encombrant par un secret miniature
Le secret encombrant est le contenu du message il est remplace par un petit
secret qui est la clef de dechirement dont la taille est en general de quelques
centaines `a quelques milliers de bits `a comparer aux megabits dun message.
La cryptographie est lart de rendre inintelligible, de crypter, de coder,
un message pour ceux qui ne sont pas habilites `a en prendre connaissance.
Le chire, le code est le procede, lalgorithme, la fonction, qui permet de
crypter un message.
La cryptanalyse est lart pour une personne non habilitee, de decrypter,
de decoder, de dechirer, un message. Cest donc lensemble des procedes
dattaque dun syst`eme cryptographique.
La cryptologie est lensemble forme de la cryptographie et de la cryptanal-
yse.
1.1. QUEST CE QUE LA CRYPTOGRAPHIE 9
La cryptologie fait partie dun ensemble de theories et de techniques liees `a la
transmission de linformation (theorie des ondes electro-magnetiques, theorie
du signal, theorie des codes correcteur derreurs, theorie de linformation,
theorie de la complexite,...).
Un expediteur Alice veut envoyer un message `a un destinataire Bob en
evitant les oreilles indiscr`ete d
`
Eve, et les attaques malveillantes de Martin.
Pour cela Alice se met daccord avec Bob sur le cryptosyst`eme quils vont
utiliser. Ce choix na pas besoin detre secret en vertu du principe de Ker-
ckhos, cf. section 1.2.
Linformation quAlice souhaite transmettre `a Bob est le texte clair. Le
processus de transformation dun message, M, pour quil devienne incom-
prehensible `a
`
Eve est appele le chirement ou la codage. On gen`ere ainsi
un message chire, C, obtenu gr ace `a une fonction de chirement,
E, par C = E(M).
Le processus de reconstruction du message clair `a partir du message chire
est appele le dechirement ou decodage et utilise une fonction de
dechirement, D. On demande que pour tout message clair M
D(C) = D(E(M)) = M
Autrement dit on demande que tout message code provienne dun et dun
seul message clair (D est une fonction surjective des messages codes vers les
messages clairs et E est une fonction injective des messages clairs sur les
messages codes).
Un algorithme cryptographique est lensemble des fonctions (mathemati-
ques ou non) utilisees pour le chirement et le dechirement. En pratique les
fonctions E et D sont parametrees par des cles, K
e
la cle de chirement
et K
d
la clef de dechirement, qui peuvent prendre lune des valeurs dun
ensemble appele espace des clefs. On a donc la relation suivante
_
E
Ke
(M) = C
D
K
d
(C) = M
Le type de relation qui unit les cles K
e
et K
d
permet de denir deux grandes
categories de syst`emes cryptographiques
Les syst`emes `a clef secr`etes ou symetriques: (DES, AES, IDEA,
Blowsh,...)
10 CHAPITRE 1. INTRODUCTION ET TERMINOLOGIE
Les syst`emes `a clefs publiques ou asymetriques: (RSA, El-Gamal,
un cryptosyst`eme elliptique,...)
En outre les fonctions de codage E et de decodage D peuvent fonctionner
de deux fa cons
en continu: chaque nouveau bit est manipule directement
par bloc: chaque message est dabord partitionne en blocs de longueur
xe. Les fonctions de chirement et dechirement agissent alors sur
chaque bloc.
Chacun de ces syst`emes depend dun ou deux param`etres de taille as-
sez reduite (128 `a 2048 bits) appeles la clef de chirement et la cle de
dechirement. Les clefs de chirement et de dechirement nont aucune
raison detre identiques. Seule la clef de dechirement doit imperativement
etre secr`ete.
1.2 Principes de Kerckhos.
En 1883 dans un article paru dans le Journal des sciences militaires, [17],
Auguste Kerckhos (1835-1903) posa les principes de la cryptographie mod-
erne. Ces principes et en particulier le second stipulent entre autre que la
securite dun cryptosyst`eme ne doit pas reposer sur le secret de lalgorithme
de codage mais quelle doit uniquement reposer sur la clef secr`ete du cryp-
tosyst`eme qui est un param`etre facile `a changer, de taille reduite (actuelle-
ment de 64 `a 2048 bits suivant le type de code et la securite demandee) et
donc assez facile `a transmettre secr`etement.
Ce principe a ete tr`es exactement respecte pour le choix du dernier standard
de chirement, lalgorithme symetrique AES, par le NIST. Ce dernier a
ete choisi `a la suite dun appel dore international et tous les details de
conception sont publics. Ce principe nest que la transposition des remarques
de bon sens suivantes:
Un cryptosyst`eme sera dautant plus resistant et s ur quil aura ete
con cu, choisi et implemente avec la plus grande transparence et soumis
ainsi `a lanalyse de lensemble de la communaute cryptographique.
Si un algorithme est suppose etre secret, il se trouvera toujours quel-
quun soit pour vendre lalgorithme, soit pour le percer `a jour, soit pour
en decouvrir une faiblesse ignoree de ses concepteurs.
`
A ce moment l`a
cest tout le cryptosyst`eme qui est `a changer et pas seulement la cle.
1.3. QUALIT

ES DUN CRYPTOSYST
`
EME 11
Les syst`emes con cus dans le secret rev`elent souvent rapidement des defauts
de securite qui navaient pas ete envisages par les concepteurs.
1.3 Qualites dun cryptosyst`eme.
Les qualites demandees `a un syst`eme cryptographique sont resumees par les
mots clefs suivants:
Condentialite: seules les personnes habilitees ont acc`es au contenu
du message.
Integrite des donnees: le message ne peut pas etre falsie sans
quon sen aper coive.
Authentication:
lemetteur est s ur de lidentite du destinataire cest ` a dire que
seul le destinataire pourra prendre connaissance du message car
il est le seul `a disposer de la clef de dechirement.
le receveur est s ur de lidentite de lemetteur
Non-repudiation qui se decompose en trois:
non-repudiation dorigine lemetteur ne peut nier avoir ecrit
le message et il peut prouver quil ne la pas fait si cest eective-
ment le cas.
non-repudiation de reception le receveur ne peut nier avoir
re cu le message et il peut prouver quil ne la pas re cu si cest
eectivement le cas.
non-repudiation de transmission lemetteur du message ne
peut nier avoir envoye le message et il peut prouver quil ne la
pas fait si cest eectivement le cas.
On peut regarder ces quatre qualites du point de vue de lemetteur. Alice
veut etre certaine
quune personne non-autorisee (
`
Eve) ne peut pas prendre connaissance
des messages quelle envoie, condentialite.
que ses messages ne seront pas falsies par un attaquant malveillant
(Martin), integrite.
12 CHAPITRE 1. INTRODUCTION ET TERMINOLOGIE
que le destinataire (Bob) a bien pris connaissance de ses messages et
ne pourra pas nier lavoir re cu, non-repudiation.
de plus elle veut etre certaine que son message ne sera pas brouille par
les imperfections du canal de transmission (cette exigence ne rel`eve pas du
cryptage mais de la correction derreur).
Bob veut etre certain
que personne dautre que lui (et Alice bien s ur) na acc`es au contenu
du message, condentialite.
que le message re cu vient bien dAlice authentication, par exemple
quun attaquant malveillant (Oscar) ne puisse pas se faire passer pour
Alice, mascarade ou usurpation didentite
que le message na pas ete falsie par un attaquant malveillant (Mar-
tin), integrite des donnees
que lexpediteur (Alice) ne pourra pas nier avoir envoye le message,
non-repudiation
1.4 Attaques sur un chirement.
La cryptanalyse est lensembles des procedes dattaque dun cryptosys-
t`eme. Elle est indispensable pour letude de la securite des procedes de
chirement utilises en cryptographie. Son but ultime est de trouver un
algorithme de dechirement des messages. Le plus souvent on essaye de
reconstituer la clef secr`ete de dechirement.
On suppose, en vertu des principes de Kerckhos, pour toutes les evaluations
de securite dun cryptosyst`eme que lattaquant connait le syst`eme cryp-
tographique utilise, la seule partie secr`ete du cryptosyst`eme est la clef.
Par exemple dans un cryptosyst`eme base sur des registres `a decalage on
suppose que lattaquant connait la forme des recurrences lineaires ainsi que
la fonction de combinaison mais pas les conditions intiales des recurrences
qui constituent la clef du code.
On doit distinguer entre les types dattaques dun adversaires et les buts
des attaques dun adversaire.
Les principaux types dattaques:
1.4. ATTAQUES SUR UN CHIFFREMENT 13
attaque ` a texte chire connu: lopposant ne connait que le mes-
sage chiffre y.
attaque ` a texte clair connu: lopposant dispose dun texte clair x
et du message chire correspondant y
attaque ` a texte clair choisi: lopposant a acc`es `a une machine
chirante. Il peut choisir un texte clair et obtenir le texte chire
correspondant y, mais il ne connait pas la clef de chirement.
attaque ` a texte chire choisi : lopposant a acc`es `a une machine
dechiffrante. Il peut choisir un texte chire, y et obtenir le texte clair
correspondant x, mais il ne connait pas la clef de dechirement.
En plus de ces attaques basees sur une etude de messages codes, il y a
aussi des attaques physiques. Le principe de ces attaques est dessayer de
reconstituer la clef secr`ete par exemple en espionnant la transmission entre
le clavier de lordinateur et lunite centrale ou en mesurant la consommation
electrique du microprocesseur qui eectue le decodage du message ou encore
en mesurant son echauement. Ensuite on essaye de remonter de ces donnees
physiques aux clefs de codage et decodage.
Une methode pour resister `a ce type dattaque sont les protocoles de preuve
sans transfert de connaissance (zero-knowledge proof) dont on donne une
idee `a la section 11.5.
Le but de lattaque dun adversaire peut etre soit de decouvrir la clef du
chirement et de pouvoir ainsi decrypter tous les messages de lemetteur
ou plus modestement de decryter un message particulier sans necessai-
rement disposer de la clef du code.
Garantir la condentialite des communications entre Alice et Bob suppose
donc qu
`
Eve ne peut pas
trouver M `a partir de E(M) (le crypto-syst`eme doit etre resistant aux
attaques sur le message code)
trouver la methode de dechirement D `a partir dune famille de cou-
ples, (M
i
, E(M
i
), (message clair, message code correspondant).
acceder `a des donnees contenues dans le micro-processeur qui code et
decode et plus generalement ne puisse pas espionner les ordinateurs
dAlice et de Bob
14 CHAPITRE 1. INTRODUCTION ET TERMINOLOGIE
1.5 Dierentes notions de securite dun cryptosyst`eme.
La securite inconditionnelle qui ne prejuge pas de la puissance de
calcul du cryptanalyste qui peut etre illimitee.
La securite calculatoire qui repose sur limpossibilite de faire en un
temps raisonnable, compte tenu de la puissance de calcul disponible,
les calculs necessaires pour decrypter un message. Cette notion depend
de letat de la technique `a un instant donne.
La securite prouvee qui reduit la securite du cryptosyst`eme `a un
probl`eme bien connu repute dicile, par exemple on pourrait prouver
un theor`eme disant quun syst`eme cryptographique est s ur si un entier
donne n ne peut pas etre factorise.
La condentialite parfaite qualite des codes pour lesquels un couple
(message clair, message chire) ne donne aucune information sur la
clef.
Toutes ces notions de s urete reposent sur la theorie de linformation de
Claude Shannon, cf. le chapitre 13.1.
Il a pu donner un sens precis base sur les probabilites `a la notion de securite
inconditionnelle si lon precise le type dattaques permises. Il a aussi donne
un sens precis `a la notion de condentialite parfaite.
La notion de securite calculatoire repose sur la theorie de la complexite,
cf chapitre 13.2. Dans la pratique il faut preciser le type dattaque. Cest
la securite calculatoire que lon utilise dans la plupart des evaluations de
securite des syst`emes cryptographiques. Elle repose sur la remarque suiv-
ante: meme avec des ordinateurs faisant 10
9
operations elementaires par sec-
onde un calcul qui necessite 2
100
operations elementaires est hors de portee
actuellement car pour leectuer il faut environ 4 10
13
annees!
La securite prouvee consiste `a ramener la securite dun cryptosyst`eme `a
un probl`eme que lon sait ou que lon esp`ere etre calculatoirement dicile
comme par exemple la factorisation des entiers en facteurs premiers. Ceci
permet de classier les dierents cryptosyst`emes suivant leur securite et de
proceder `a une veille technologique rationnelle.
Chapitre 2
Historique.
Il y a historiquement deux grandes familles de codes classiques avec des
hybrides
Les codes `a repertoire
Les codes `a clefs secr`etes qui se subdivisent en deux familles
les codes de transposition ou de permutation qui sont des codes
par blocs.
les codes de substitution qui peuvent etre des codes par blocs ou
par ots
On trouve des utilisations attestees par des documents historiques comme
par exemple
Scytale `a Sparte vers -450, (principe des codes de permutation).
Code de Jules Cesar vers -50, (principe des codes de substitution).
2.1 Codes `a repertoire.
Ils consistent en un dictionnaire qui permet de remplacer certains mots par
des mots dierents. Ils sont tr`es anciens et ont ete utilises intensivement
jusquau debut du 20-i`eme si`ecle. Ils ont fait lobjet dune critique sev`ere de
A. Kerchkos dans son article fondateur.
On peut par exemple creer le dictionnaire suivant:
rendez-vous 175 demain oiseaux
midi `a vendre Villetaneuse au marche
15
16 CHAPITRE 2. HISTORIQUE
La phrase en clair:
RENDEZ VOUS DEMAIN MIDI VILLETANEUSE
devient avec ce code
175 OISEAUX
`
A VENDRE AU MARCH

E
Il faut donc disposer de dictionnaires qui prevoient toutes les possibilites.
Donc, sauf si on se restreint `a transmettre des informations tr`es limitees, la
taille du dictionnaire saccroit demesurement. Au 19e si`ecle on avait ainsi
pour des usages commerciaux ou militaires des dictionnaires de plusieurs
milliers de mots de codes. Tout changement du code necessitait lenvoi de
documents volumineux avec un risque dinterception non negligeable.
Ces codes manquent de souplesse ils ne permettent pas de coder des mots
nouveaux sans un accord prealable entre lexpediteur et le destinataire. Pour
cela il faut quils echangent des documents ce qui accrot le risque dinter-
ception du code. Ils ne sont pas adaptes `a des usages intensifs entre de
nombreux correspondants. Ils ne sont pratiquement plus utilises pour les
usages publics. Par contre ils peuvent rendre des services appreciables pour
un usage unique.
2.2 Codes de permutation ou de transposition.
Dans les codes de permutation On partage le texte en blocs, on garde le
meme alphabet mais on change la place des lettres `a linterieur dun bloc
(on les permute).
Un exemple historique dont le principe est encore utilise est la methode de
la grille (principe de la scytale utilisee par les spartiates vers -450 AJC).
On veut envoyer le message suivant:
RENDEZ VOUS DEMAIN MIDI VILLETANEUSE
Lexpediteur et le destinataire du message se mettent daccord sur une grille
de largeur xee `a lavance (ici une grille de 6 cases de large).
Lexpediteur ecrit le message dans la grille en rempla cant les espaces entre
les mots par le symbole . Il obtient:
2.2. CODES DE PERMUTATION OU DE TRANSPOSITION 17
R E N D E Z
V O U S
D E M A I N
M I D I
V I L L E T
A N E U S E
Il lit le texte en colonne et obtient ainsi le message crypte:
RDVAEVEMINNOMILEDUADLUESIIESZNTEC
Pour pouvoir modier le code rapidement sans toucher `a son principe et
pouvoir ainsi augmenter la securite les deux interlocuteurs peuvent decider
lajout dune clef.
Le but est de pouvoir changer facilement le cryptage dun message tout
en gardant le meme algorithme de codage. Pour cela on rajoute une cle
secr`ete constituee par lordre de lecture des colonnes.
Exemple 2.2.1. On choisit la cle: CAPTER
On numerote les colonnes en fonction du rang des lettres du mot CAPTER
dans lalphabet cest `a dire
2, 1, 4, 6, 3, 5
et on lit les colonnes dans lordre indique.
EVEMINRDDADUADLUZNTENOMILEESIIES
On a 6! codes dierents.
Pour decoder le message precedent on range en colonne sur la grille en
suivant lordre des colonnes donne par le mot de code
E
V
E
M
I
N
=
R E D
V U
D E A
M D
V I L
A N U
=
18 CHAPITRE 2. HISTORIQUE
R E N D E Z
V O U S
D E M A I N
M I D I
V I L L E T
A N E U S E
On a aaire `a un code `a clef secr`ete ou code symetrique car la clef de
decodage est la meme que la clef de codage ou sen deduit facilement.
Pour eviter dallonger demesurement la hauteur de la grille et pour eviter
davoir `a coder la totalite du message avant de commencer la transmission,
on travaille sur des blocs de taille m = k o` u k est la largeur de la grille
et sa hauteur. On a alors un syst`eme de codage par blocs, symetrique ou
`a clef secr`ete.
Pour des raisons de securite il ne faut pas que et k soient trop petits. Il
faut aussi completer les blocs incomplets dune mani`ere qui ne diminue par
la securite du code.
2.2.1 Cryptanalyse des codes de permutation.
Si lon ne dispose que dun texte chire, on peut essayer dattaquer ces codes
par force brute cest `a dire en essayant de mani`ere exhaustive toutes les
permutations de colonnes possible. Rappelons quun calcul comportant plus
de 10
80
operations elementaires est impraticable actuellement en un temps
raisonnable. Si la grille comporte n colonnes on aura n! permutations de
colonnes possibles.
Dapr`es la formule de Stirling n!
_
n
e
_
n
2n, donc d`es que le nombre de
colonne depasse 50 on a plus de 10
85
permutations et on est assure quune
attaque par force brute est impraticable. Mais ce nest pas la seule attaque
possible.
Il y a par exemple des attaques `a texte clair choisi. On prend un message
constitue dun seul 1 et complete par des zeros et de regarde le resultat
en faisant varier la place du 1. On en tire rapidement des informations
non-triviales sur la permutation.
2.3. CODES DE SUBSTITUTION 19
2.3 Codes de substitution.
Dans les codes de substitution par ots ou par blocs lordre des lettres
est conserve mais on les remplace par des symboles dun nouvel alphabet
suivant un algorithme precis.
Exemple 2.3.1. Code de Cesar:
Pour coder on remplace chaque lettre par son rang dans lalphabet.
A=1, B=2, C=3,....,M=13, N=14,...,S=20,...,X=24, Y=25, Z=26
Dapr`es Suetone, dans son ouvrage Vie des douze Cesars, Jules Cesar
pendant la guerre des Gaules avait utilise le code de substitution par ot
suivant
lettre codee=lettre claire+3 modulo 26
Le message en clair
RENDEZ VOUS DEMAIN MIDI VILLETANEUSE
devient
UHQGHC YRXV GHPDLQ PLGL YLOOHWDQHXVH
On peut considerer toute la famille des codes
lettre codee=lettre claire+n modulo 26
o` u n est un entier entre 0 et 25 appele la clef du code.
Avec la clef n = 7 le texte code du message precedent devient:
YLUKLG CVBZ KLTHPU TPKP CPSSLAHULBZLBZL
Le decodage se fait en utlisant la relation
lettre claire=lettre codee -n mod 26
On a aaire `a un code en continu ou par ots symetrique ou `a clef
secr`ete.
20 CHAPITRE 2. HISTORIQUE
2.3.1 Cryptanalyse des codes de substitution.
Un code substitution comme le code de Cesar ne resiste pas `a une attaque
`a texte chire connu. On consid`ere un message code avec une substitution
monoalphabetique:
JTVMNKKTVLDEVVTLWTWITKTXUTLWJERUTVTWTHDXATLIUNEWV.
JTVIEVWELOWENLVVNOEDJJTVLTPTXYTLWTWUT
SNLITTVQXTVXUJXWEJEWTONKKXLT.
Decodage par analyse de frequence, cette methode a ete mise au point
au moyen age par des lettres arabes.
Analyse de frequence
Lettre % fran cais % texte Lettre % fran cais % texte
A 9,4 1 N 7,2 5
B 1,0 0 O 5.1 2,5
C 2,6 0 P 2,9 1
D 3,4 2,5 Q 1,1 1
E 15,9 8 R 6,5 1
F 1 0 S 7,9 1
G 1 0 T 7,3 20
H 0,8 1 U 6,2 4,5
I 8,4 3,8 V 2,1 12
J 0,9 5,1 W 0 9,9
K 0 4,7 X 0,3 6
L 5,3 9 Y 0,2 1
M 3,2 1 Z 0,3 0
On peut donc faire lhypoth`ese que T=E puis que V=S (`a cause des lettres
doublees) puis que les voyelles A, I, O, U correspondent `a D,E, N, X et
nalement on obtient la correspondance
A B C D E F G H I J K L M
D R O I T S H M E F G J K
N O P Q R S T U V W X Y Z
L N P Q U V W X Y Z A B C
Exercices. 1
2.3.1. Le message suivant a ete code avec un code de Cesar, decodez-le.
YN PHEVBFVGR RFG HA IVYNVA QRSNHG
2.4. LE CODE DE VIG

EN
`
ERE 21
2.3.2. On choisit un alphabet `a M 2 lettres, on associe `a chaque lettre de
lalphabet un entier entre 0 et M 1. Un code ane sur cet alphabet est
un code dont la fonction de codage est
E :Z/MZ Z/MZ
x ax +b
avec a (mod MZ) et premier `a M, b (mod MZ). On suppose quon utilise
lalphabet latin avec 26 lettres. On consid`ere le code ane avec M = 26,
a = 7, b = 5. Codez avec ce code le texte:
IL SEMBLERAIT BIEN QUE CE TEXTE AIT UNE SIGNIFICATION.
LE TOUR EST DONC JOUE
2.3.3. Le message suivant a ete code avec le code ane associe `a lalphabet
latin, M = 26:
NMDUGXP IDIIDHX AKVAVPD ZQX NKTAUAQDGTPX SZ
NMRCCKXLXQU SX ERHXQXKX IDPXX PZK GD KXAXURURVQ
SX GD NGX.
Decodez-le.
2.4 Le code de Vigen`ere.
La faiblesse des codes de Cesar et des syst`emes analogues est que la fre-
quence des lettres est conservee ce qui permet une cryptanalyse aisee par
analyse de frequences.
Pour ameliorer la securite on peut faire un code de Cesar par blocs dans
lequel on change de substitution pour chaque lettre dun bloc. On obtient
ainsi le code de Vigen`ere, mis au point par Leon Batista Alberti au 15-
i`eme si`ecle et developpe par Blaise de Vigen`ere:
On se xe une longueur de bloc m.
On decoupe le message en blocs de m-lettres.
On chire par blocs de m lettres. On decide par exemple que la
premi`ere lettre dun bloc de m est codee avec un code de Cesar de
clef n
1
, la deuxi`eme avec un code de Cesar de clef n
2
et la m-i`eme par
un code de Cesar de clef n
m
.
22 CHAPITRE 2. HISTORIQUE
Tr`es s urs pendant plusieurs si`ecles, ces codes ont ete cryptanalyses ocielle-
ment par Charles Babbage et Friedrich Wilhelm Kasiski au 19-i`eme si`ecle.
Le code de Cesar est un code monoalphabetique. Le code de Vigen`ere
est un code polyalphabetique ou par blocs.
Exemple 2.4.1. m = 5, n
1
= 3, n
2
= 14, n
3
= 7, n
4
= 22, n
5
= 19, le
message en clair est:
M=
_
Ce syst`eme de codage nest pas s ur, mais plus que le code de Cesar si
la cle est longue
_
.
on partage en blocs de taille 5 en partant de la gauche
CESYS TEMED ECODA GENES TPASS URMAI SPLUS QUELE
CODED ECESA RSILA CLEES TLONG UEXXX
Les XXX ont ete ajoutes pour completer le dernier bloc. La mani`ere de
completer le dernier bloc peut etre une faiblesse du code. Dans chaque
bloc on code la premi`ere lettre avec le code de Cesar de clef n
1
= 5,..., la
cinqui`eme lettre du bloc avec le code de Cesar de clef n
5
= 19. Le message
code devient:
e(M)= FSZUL WSTAW HQVZT JSUAL WDHOL XFTWB VDSQL
TILHX FCKAW HQLOT UGPHT FZLAL WZVJZ XSETQ
2.4.1 Cryptanalyse des codes de Vigen`ere.
La cryptanalyse du cryptosyst`eme de Vigen`ere peut se faire `a texte chire
connu si le message est assez long, cf. le chapitre 1.4. On remarque que
des repetitions de lettres assez longues (en general on cherche des triplets
ou trigrammes) doivent correspondre dans le texte clair `a des repetitions
de lettres aussi. Ceci permet de majorer la taille de la cle. On se ram`ene
alors `a la cryptanalyse dun chirement de Cesar. Cette cryptanalyse a ete
mise au point au 19e si`ecle.
Ici compte tenu de la faible longueur du texte on ne trouve que les doublets
ou digrammes AW et AL eloignes de 40 lettres et 45 lettres dont le PGCD
est 5 ce qui sugg`ere une clef de longueur 5.
Une fois que lon a determine la longueur de la clef, le decodage est le meme
que celui de 5 codes de Cesar.
2.4. LE CODE DE VIG

EN
`
ERE 23
Exercices. 1
2.4.1. Indice de concidences

Etant donne une suite x = x
1
x
2
. . . x
n
de
caract`eres x
i
dun alphabet Z on denit le nombre n
c
dindices i tels que
x
i
= c et lindice de concidences, I qui est la probabilit pour que deux
caractres de la suite x soient identiques
I = Pr
K,J
[x
K
= x
L

I < J]
o` u K et L des variables aleatoires independantes sur 1, . . . , n equidistri-
buees.
1. Montrer que I =

cZ
n
c
(n
c
1)
n(n 1)
.
2. Montrer que lindice de coincidence est invariant quand on substitue
lalphabet Z

`a lalphabet Z.
3. Montrer que lon peut utiliser lindice de concidences pour faire une
cryptanalyse du code de Vigen`ere si lon connait une borne superieure
de la taille des blocs.
2.4.2. On associe `a chaque lettre de lalphabet latin son ordre compris entre
0 et 25. Le message suivant a ete code avec un code de Vigen`ere associe `a
lalphabet latin:
CS AZZMEQM, CO XRWF, CS DZRM GFMJECV. XIMOQJ JC LB
NLFMK CC LBM WCCZBM KFIMSZJSZ CS URQIUOU. CS ZLPIE
ECZ RMWWTV, SB KCCJ QMJ FCSOVJ GCI ZI ICCKS, MK QMLL
YLCV ECCJ OKTFWTVM JIZ CO XFWBIWVV, IV ACCI CC
COCKFM, JINWWB UOBKSVUFM.
Decodez-le.
2.4.3. Le chirement de Hill. Ce cryptosyst`eme generalise celui de Vige-
n`ere. Il a ete publie par L. S. Hill en 1929.
On choisit un alphabet de n lettres (on prendra dans nos exemples
n = 26) et une taille m pour les blocs, par exemple m = 2. Alors
T = c = (Z/26Z)
2
, (en general (Z/nZ)
2
).
La clef de codage est une matrice inversible K GL
m
(Z/nZ), si n = 26
et m = 2
K =
_
a b
c d
_
GL
2
(Z/26Z)
24 CHAPITRE 2. HISTORIQUE
Si (x
1
, x
2
)
_
Z/26Z
_
2
est le message clair alors le message code sera:
(y
1
, y
2
) = e
K
((x
1
, x
2
)) = (x
1
, x
2
)
_
a b
c d
_
= (ax
1
+cx
2
, bx
1
+dx
2
)
La cle de dechirage est la matrice inverse de K dans GL
m
(Z/nZ).
Par exemple avec m = 2 et K =
_
11 8
3 7
_
alors K
1
=
_
7 18
23 11
_
.
Comme pour le code de Cesar on peut considerer des codes de Hill anes
constitues dune matrice de GL
m
(Z/nZ) et dun vecteur V de (Z/nZ)
m
.
Lalgorithme de codage est donne par
M KM +V
o` u M est un bloc de taille m du message clair identie `a un vecteur de
(Z/nZ)
m
.
2.4.4. Montrer que le chirement de Hill ne resiste pas `a une attaque `a texte
clair choisi.
2.4.5. 1. En utilisant la correspondance
Alphabet Z/26Z = 0, 1, . . . , 25
Numeriser le texte ci-dessous (du moins une partie)
Des chercheurs tentent de visualiser des raisonnements
mathematiques dans les emotions comme la honte ou la compassion.
2. Chirer le message precedent avec une methode par decalage de clef
7.
3. Chirer le message avec une methode par substitution en utilisant la
clef k : Z/26Z Z/26Z denie par
k() =
_

_
8 + 1 si ,= 7 et 25
0 si = 7
8 si = 25
Donner la fonction reciproque de k.
4. Chirer le message avec une methode de Vigen`ere de clef k = (2; 19).
2.5. COMMENTAIRES HISTORIQUES 25
2.4.6. (Cryptanalyse par analyse de frequence). On consid`ere le message
chire avec une methode de substitution.
eohokrilppofoyvkesvsglomihisvsyoelkvije
ooyhiswzyqowgliyvsvowqoxicioppovqowohhohoeikroowmih
eikvsasvorlsyoqomlsweoqojlvqoeohosyqlwvhsoeeoeovi
lnqoxickihjzysgloowvisywsmiwwoqoqolnkoyvglivhoasyxvm
mfoyfseeowomvkoyvksygliyvoivhzswkoyvwzsniyvommltzlh
qrlsoveoqohysohhimmzhvqlxhzlmoqonmohvwsyvohxzlaohyofo
yviewlheoazelvszyqlkesvmhoazbisvoyqolnfseeolyglokov
ilnmzlhhisvivvosyqhoksygkoyvglihiyvoiyolpkoyvmmfqsksi
1. Donner le tableau des frequence des lettres, et des frequences des bi-
grammes les plus frequents.
2. En deduire la clef de chirement et le message clair correspondant.
2.5 Commentaires historiques.
Les methodes historiques pour authentier un message se retrouvent dans
les cryptosyst`emes modernes
On utilisait des messagers qui devaient echanger des signes de reconnaissance
convenus (phrase de reconnaissance, lettres dintroduction, etc..) avec le
destinataire pour authentier le messager, lexpediteur ou le destinataire,
an deviter les faux messages.
Pour eviter la falsication du message on le mettait dans une enveloppe
scellee revetue de cachets, le message lui-meme etait signe, lecriture permet-
tait elle aussi lauthentication du message, etc...
Le destinataire pouvait parfois accuser reception en guise de protocole de
non repudiation.
La cryptanalyse a ete pratiquee depuis la plus haute antiquite. Le code de
Cesar a ete cryptanalyse par les lettres arabes du 9-i`eme si`ecle; Al Kindi a
decrit la methode de lanalyse statistique.
Tous les rois avaient leurs cryptographes-cryptanalystes (les Rossignol pour
Louis XIV) et leur cabinet noir.
26 CHAPITRE 2. HISTORIQUE
Les rapports entre cryptographie et cryptanalyse sont analogues aux rap-
ports entre blindage et artillerie. Le code de Cesar a tenu 9 si`ecle, celui de
Vigen`ere a tenu 4 si`ecles, le standard DES a tenu 20 ans. le standard RSA
est en passe detre supplante par les codes elliptiques.
Chapitre 3
Quelques methodes de codage.
Dans la partie historique nous avons donne des exemples de chirement par
blocs (code de Hill) et de chirement par ots (code de Cesar). Les syst`emes
de chirement par blocs agissent sur les donnees avec une transformation
xe des grands blocs de donnees en clair; les syst`emes de chirement par
ots (ou chirement par ux) agissent avec une transformation variant
avec le temps sur des donnees en clair individuelles.
Le chirement par blocs est le plus repandu et jouit dune meilleure reputa-
tion que le chirement par ots plus facile `a analyser mathematiquement.
Le schema general du chirement par blocs symetrique ou `a clef secr`ete est
le suivant:
1. coder linformation source en binaire. On obtient ainsi une chane de
caract`eres composee de 0 et de 1.
2. decouper cette chane en blocs de longueur donnee (par exemple 64
bits ou 128 bits ou 256 bits).
3. chirer un bloc en faisant un OU exclusif (ou XOR) bit `a bit avec
une cle secr`ete, k, qui est une suite de 0 et de 1 de meme longueur,
(un XOR est donc laddition sans retenu en base deux).
4. deplacer et permuter certains bits du bloc.
5. recommencer un certain nombre de fois letape precedente, on appelle
cela une ronde.
6. passer au bloc suivant et retourner `a letape 3 jusqu`a ce que tous les
blocs soient chires.
27
28 CHAPITRE 3. QUELQUES M

ETHODES DE CODAGE
Le OU exclusif ou XOR entre deux blocs en binaire, m et n, est note mn,
par exemple
m = 1001111010001111, n = 1011111000010111
mn = 0010000010011000
Le schema general de chirement par blocs asymetrique ou `a clef publique
est le suivant:
1. coder linformation source en binaire. On obtient ainsi une chane de
caract`eres composee de 0 et de 1.
2. decouper cette chane en blocs de longueur donnee (par exemple 1024
bits `a 2048 bits pour RSA et El Gamal, 256 bits pour les codes ellip-
tiques).
3. chirer un bloc en utilisant la fonction de chirement (exponentiation
modulaire pour RSA).
4. passer au bloc suivant et retourner `a letape 3 jusqu`a ce que tous les
blocs soient chires.
Le probl`eme pratique qui se pose ensuite est le protocole denvoi des blocs
successivement obtenus. Il faut que ce protocole ne diminue pas la surete
du cryptosyst`eme.
3.1 Les modes de chirement.
Que ce soit pour DES ou des cryptosyst`emes symetriques plus recents comme
IDEA ou AES ou pour des cryptosyst`emes asymetriques comme RSA ou El-
Gamal les cles sont de longueur xee. Les messages eux peuvent avoir une
longueur arbitraire. Pour adapter la taille du message `a celle de la clef on
decompose le message par blocs de taille xe correspondant aux tailles des
cles que lon chire ensuite un `a un et que lon envoie successivement. Pour
cela quatre modes de chirement par blocs sont possibles: ECB, CBC, CFB
et OFB.
3.1.1 Le mode ECB, Electronic Code Book.
Le mode ECB, Electronic Code Book, est le mode le plus simple. Le mes-
sage, M, est decoupe en blocs , (m
i
)
i1
, et chaque bloc est crypte separement
par
c
i
= E(m
i
)
3.1. MODES DE CHIFFREMENT 29
o` u E = E
k
depend de la cle secr`ete k et c
i
est le bloc crypte correspondant.
On proc`ede donc suivant le schema suivant:
m
1
m
2
. . . m
n

E E . . . E

c
1
c
2
. . . c
n
Figure 3.1: Diagramme du mode ECB
On transmet c
1
[[c
2
[[ . . . [[c
n
.
Securite du mode ECB
Un bloc de message m
i
sera toujours code de la meme mani`ere, ce qui nuit `a
la securite du codage. Dautre part un attaquant malveillant peut permuter
deux blocs ou remplacer un bloc par un autre sans que le destinataire sen
aper coive.
La procedure ECB nest jamais utilisee en pratique.
3.1.2 Le mode CBC, Cipher Block Chaining.
Le mode CBC, Cipher Block Chaining, a ete introduit pour quun
bloc ne soit pas code de la meme mani`ere sil apparat dans deux messages
dierents ou sil apparat deux fois dans un message.
Le message, M, est decoupe en blocs , (m
i
)
i1
, et chaque bloc est crypte de
la mani`ere suivante. On commence par choisir un bloc initial c
0
. Chaque
bloc clair m
i
est dabord modie en faisant un XOR de ce bloc avec le bloc
crypte precedent, c
i1
puis on crypte le resultat obtenu par XORisation avec
la clef
c
1
= E
k
(m
1
c
0
)
c
2
= E
k
(m
2
c
1
)
.
.
.
.
.
.
c
i
= E
k
(m
i
c
i1
)
.
.
.
.
.
.
30 CHAPITRE 3. QUELQUES M

ETHODES DE CODAGE
suivant le schema donne `a la gure 3.2 page 32.
On transmet le message c
0
[[c
1
[[ . . . [[c
n
.
Le bloc initial c
0
peut etre choisi de lune des mani`eres suivantes:
1. On gen`ere c
0
aleatoirement et on le transmet en clair avec le message
2. On gen`ere c
0
aleatoirement et on le transmet de mani`ere condentielle
3. On utilise un c
0
xe qui fait partie des constantes du cryptosyst`eme
4. On utilise un c
0
xe qui fait partie de la cle secr`ete du cryptosyst`eme
On recommande en general dutiliser lune des deux premi`ere solutions. Les
deux derni`eres font que si le premier bloc est identique dans deux messages
dierent il sera code de la meme mani`ere ce qui nuit `a la securite du code.
Le dechirement necessite de connatre la fonction inverse de la fonction de
codage D
k
= E
1
k
pour decrypter
m
i
= c
i1
D
k
(c
i
)
Securite du mode CBC
Ce syst`eme de transmission par blocs a une bonne securite et naaiblit pas
le crytosyst`eme, mais il necessite de connatre la fonction inverse D
k
de E
k
.
3.1.3 Le mode CFB, Cipher FeedBack.
Le mode CFB, Cipher FeedBack, a ete introduit pour ne pas avoir `a
calculer la fonction inverse, D
k
, de la fonction de chirage E
k
.
Le principe est le meme que celui du mode CBC. Le message, M, est decoupe
en blocs , (m
i
)
i1
, et chaque bloc est crypte de la mani`ere suivante. On
commence par choisir un bloc initial m
0
, choisi suivant les memes principes
que le blocs c
0
en mode CBC.
Chaque bloc clair m
i
est XORe avec le crypte du bloc de sortie precedent,
c
i1
, suivant le schema:
c
0
= E
k
(m
0
)
c
1
= m
1
E
k
(c
0
)
c
2
= m
2
E
k
(c
1
)
.
.
.
.
.
.
3.1. MODES DE CHIFFREMENT 31
c
i
= m
i
E
k
(c
i1
)
.
.
.
.
.
.
on fait donc un XOR du bloc dindice i le crypte du bloc dindice i 1,
suivant le schema donne `a la gure 3.3 page 32.
On transmet le message c
0
[[c
1
[[ . . . [[c
n
.
Securite du mode CFB
Ce mode est moins s ur que le CBC et est utilise par exemple pour les
cryptages reseaux. Linteret est que le dechirement ne necessite pas de
calculer D
k
, en eet:
m
i
= c
i
E
k
(c
i1
)
(se souvenir que lon calcule modulo 2 sans retenue, bit `a bit) do` u un gain
de temps.
3.1.4 Le mode OFB, Output FeedBack.
Le mode OFB, Output FeedBack, est une variante de CFB qui permet
davoir un cryptage et un decryptage totalement symetrique:
z
i
= E
k
(z
i1
); c
i
= m
i
z
i
en suivant le schema donne `a la gure 3.4 page 33
On transmet le message c
0
[[c
1
[[ . . . [[c
n
.
Ce mode est utilise par exemple pour les cryptages satellites et se dechire
par
z
i
= E
k
(z
i1
); m
i
= c
i
z
i
Securite du mode OFB
Sa surete est equivalente `a celle du mode CFB.
3.1.5 Le mode CTR, Counter-mode encryption.
Le mode CTR, Counter-mode encryption. Ce mode de cryptage est
lui aussi totalement symetrique, mais en outre facilement parallelisable. Il
utilise pour le chirement un compteur de valeur initiale T
c
i
= m
i
E
k
(T +i)
32 CHAPITRE 3. QUELQUES M

ETHODES DE CODAGE
m
1
c
1
E
k
E
k
E
k
c
0
m
2
m
n
c
2
c
n
. . . . . .
Figure 3.2: Diagramme du CBC
c
n
m
n
E
k
c
1
m
1
m
2
c
2
E
k
E
k
. . .
c
0
Figure 3.3: Diagramme du mode CFB
3.1. MODES DE CHIFFREMENT 33
. . . . . .
c
0
E
k
c
1
m
1
m
2
c
2
E
k
c
n
m
n
E
k
Figure 3.4: Diagramme du mode OFB
c
1
m
1
m
2
c
2
c
n
m
n
E
k
. . .
E
k
E
k
T + 1
T + 2 T +n
Figure 3.5: Diagramme du mode CTR
34 CHAPITRE 3. QUELQUES M

ETHODES DE CODAGE
en suivant le schema donne `a la gure 3.5 page 33
Le dechirage est identique
m
i
= c
i
E
k
(T +i)
Linteret dun tel mode est principalement que les dierents calculs de cryp-
tage et decryptage sont independants, comme pour le mode ECB, mais quun
meme bloc nest a priori jamais code de la meme fa con.
Securite du mode CTR
Sa surete est equivalente `a celle du mode CFB.
Chapitre 4
Les codes modernes.
Tout dabord nous donnons une description un peu formelle dun cryptosys-
t`eme. Nous decrirons au chapitre 6, 7, 8, 9, des cryptosyst`emes reels.
Denition 4.0.1. Un cryptosyst`eme est un dictionnaire entre les messages
en clair et les messages chires.
An de travailler ecacement sur les codes et denir de mani`ere quantitative
leur securite on est amene `a les modeliser et donc `a denir de mani`ere
axiomatique un cryptosyst`eme:
Denition 4.0.2. Formellement un cryptosyst`eme est un quintuplet
(T, (, /, c, T)
o` u
T est un ensemble ni de blocs : les mots en clair
( est un ensemble ni de blocs: les mots codes
/ est un ensemble : l espace des clefs
Pour tout K / on a une r`egle de chirement e
K
c et une r`egle
de dechirement correspondante d
K
T. Chaque e
K
: T ( et
d
K
: ( T sont des fonctions telles que d
K
(e
K
(x))) = x pour tout
x T
Pour chaque K / (la clef du code) la transformation e
K
est appelee le
procede de chiffrement, ou l algorithme de codage, entre les textes
en clair T et les textes codes (.
La fonction inverse d
K
de e
K
est appelee la fonction de decodage.
On exige que tout message code puisse etre decode.
35
36 CHAPITRE 4. LES CODES MODERNES
Un code moderne est donc constitue
Dun algorithme de chirement f = f
K
C
, suppose connu de tous,
dependant dun param`etre K
C
, la cle de chirement. Lalgorithme est
xe et public, seule la cle change, (on applique le principe de Kerck-
hos).
De la valeur de la cle de chirement, K
C
qui est secr`ete ou non suivant
que lon a aaire `a un code `a clef secr`ete ou `a un code `a clef publique.
Dun algorithme de dechirement g = g
K
D
= f
1
(suppose connu de
tous) dependant dune cle de dechirement, K
D
, dierente ou non de
K
C
.
De la valeur de la cle de dechirement, K
D
, qui est toujours secr`ete.
4.1 Objectifs des codes actuels.
Rappelons les qualites attendues dun cryptosyst`eme, cf.chapitre 1.3. Tout
dabord les qualites fonctionnelles:
1. Condentialite des donnees: Les messages ne peuvent etre dechif-
fres que par le destinataire.
2. Integrite des donnees: Ils ne peuvent etre modies par un tiers non
autorise.
3. Authentication: Lidentite des dierents participants peut etre
veriee.
4. Non-repudiation: Lexpediteur ne peut nier avoir emis le message
et le destinaire ne peut nier lavoir re cu.
Ensuite les qualites pratiques
1. Il doit resister aux attaques connues et si possible avoir une securite
prouvee.
2. Il doit permettre de coder et decoder rapidement (en temps reel pour
certaines applications).
Il nexiste pas de codes qui reunissent toutes ces qualites simultanement. Il
faut donc un compromis adapte `a chaque situation.
4.2. LES FAMILLES DE CODES MODERNES 37
4.2 Les familles de codes modernes.
Les principales familles de codes modernes sont
Les codes par ot (registres `a decalage)
les codes par blocs
_
les codes symetriques (ou `a cle secr`ete).
les codes asymetriques (ou `a cle publique)
Les codes `a clef publique sont bases sur la notion de fonction `a sens unique
denie au chapitre 4.4.
4.3 Codes symetriques.
Les principes des codes symetriques commerciaux modernes du type DES
(Data Encrytion Standard), cf. chapitre 8, ont ete mis au point dans les
annees 1970 par IBM avec laide de la NSA (National Security Agency), ce
sont des hybrides de codes de substitutions et de codes de transpositions
bases sur un schema de Feistel.
Ils restent tr`es s urs avec des cles assez courtes de 128 bits `a 256 bits. Leur
s urete est non prouvee. Leur cryptanalyse a fait des progr`es (cryptanalyse
lineaire et dierentielle), ce qui permet de mieux cerner leur s urete.
Les codes `a cle secr`ete sont les plus employes actuellement car ils sont
eprouves, resistants, rapides et assez facile `a mettre en oeuvre. Actuellement
leur securite est garantie (mais non prouvee) avec des cles assez courtes de
128 `a 256 bits pour le standard actuel AES.
Mais il faut echanger la cle secr`ete avec le destinataire do` u un risque. Ils
necessitent un grand nombre de cles. Il faut
n(n 1)
2
cles pour que n interlocuteurs puissent echanger des informations do` u un
probl`eme de fabrication et dechange de clefs ables.
Ils ont du mal `a realiser sans tiers de conance le partage des clefs, la
signature, lauthentication, et la non repudiation des messages transmis.
Ils sadjoignent parfois un code asymetrique pour cela comme dans le cryp-
tosyst`eme PGP.
La generation actuelle de codes symetriques est le cryptosyst`eme AES, decrit
au chapitre 8, developpe dans les annees 2000 `a la suite dun appel dore
38 CHAPITRE 4. LES CODES MODERNES
international par John Daemon et Vincent Rijmen, [8]. Il utilise dans sa
conception nettement plus de mathematiques que son predecesseur le DES,
ce qui permet une meilleure apprehension de sa securite.
4.4 Codes asymetriques.
Les principes des codes asymetriques ont ete mis au point par Die et
Hellman en 1976. Ils ont degage la notion de fonction ` a sens unique.
Ce sont des fonctions qui sont faciles `a calculer cest `a dire calculable en
temps polynomial en fonction de la taille des donnees mais tel que limage
reciproque (les antecedents) dun element soit tr`es dicile `a calculer ex-
plicitement au moins calculatoirement, cest `a dire que le temps de calcul
soit prohibitif, voir la sous-section 13.2.3 et suivants. Autrement dit on de-
mande que la fonction inverse ne soit pas calculable en temps polynomial en
fonction de la taille des donnees.
Le premier exemple de fonction `a sens unique du `a Die, Hellmann et Merkle
etait basee sur le probl`eme du sac ` a dos, cf. section 9.2 page 99, dont il avait
ete demontre quil appartenait `a la classe des probl`emes de type NP (NP
pour Non Polynomial), autrement dit il existe des instances (des realisations)
de ce probl`eme qui sont dans la classe NP (cest un theor`eme). Attention
cela ne veut pas dire que toutes les instances de ce probl`eme sont
de type NP.
Un probl`eme de la classe NP est un probl`eme dont la solution exige un
calcul en temps non polynomial en fonction de la taille des donnees, sous
reserve de la validite de la conjecture P,= NP, cf. la sous-section 13.2.2.
On peut donc esperer quil permette de fabriquer un cryptosyst`eme orant
une securite calculatoire elevee.
Malheureusement les instances connues du probl`eme du sac ` a dos ne sont
pas de type NP. En particulier les realisations pratiques de Die, Hellmann
et Merkle utilisaient des sacs `a dos qui netaient pas dans la classe NP.
Leur cryptosyst`eme a succombe `a lattaque des cryptanalystes (en particulier
Shamir).
Dans la solution suivante, 1978, le cryptosyst`eme RSA (Rivest-Shamir
et Adleman) decrit au chapitre 9, la fonction `a sens unique sous-jacente est
la multiplication des entiers qui appartient `a la classe P (P pour Polynomial)
des probl`emes polynomiaux en temps. Sa fonction reciproque la fac-
torisation des entiers est actuellement dans la classe NP des probl`emes
non polynomiaux en temps, cest un fait dexperience pas un theor`eme.
4.5. LES

ECHANGES DE CLEFS 39
Dautres solutions sont apparues peu apr`es:
le syt`eme El Gamal, cf. chapitre 9, qui repose sur lexponention dans
Z/pZ avec p premier et sur lapplication inverse qui est le logarithme
discret,
les codes bases sur les courbes elliptiques. Ils reposent sur la
structure de groupe des points des courbes elliptiques sur un corps ni
cf. chapitre 9.
Les cryptosyst`emes asymetriques reposent sur des structures mathematiques
elaborees. Leur s urete est bonne mais non prouvee. Leur cryptanalyse
depend beaucoup des progr`es des mathematiques correspondantes.
Sauf pour les codes elliptiques, ils necessitent des cles longues (1024 `a 2048
bits) pour avoir une s urete equivalentes `a celle dun cryptosyst`eme `a clef
secr`ete de 128 `a 256 bits. Ils sont 1000 `a 1500 fois plus lents. Mais ils
permettent de realiser facilement les fonctionnalites suivantes
partage des clefs,
authentication
integrite
non repudiation
et bien dautres encore gr ace au fait que la clef est en fait constituee de
deux clefs, la clef de codage et la clef de decodage, et que cette derni`ere est
attachee `a une personne et la caracterise.
Ils ne necessitent que n paires de cles (une cle secr`ete et une cle publique)
pour n interlocuteurs.
On les utilise souvent pour la transmission des cles secr`etes des codes syme-
triques.
4.5 Les echanges de clefs.
Un probl`eme important rencontre dans lutilisation dun cryptosyst`eme est
lechange des clefs entre des interlocuteurs. Cest un des moments o` u la
securite du cryptosyst`eme est la plus vulnerable. Il faut trouver un protocole
s ur pour lechange des clefs.
40 CHAPITRE 4. LES CODES MODERNES
Rappelons que dans un cryptosyst`eme `a clef secr`ete lorsque deux interlocu-
teurs veulent converser il leur faut echanger une clef. Il faut donc autant
de clefs quil y a de paires non ordonnees dinterlocuteurs cest `a dire pour
n interlocuteurs
_
n
2
_
=
n(n 1)
2
. Le nombre de clefs `a echanger entre n
interlocuteurs est donne par le tableau 4.1 page 40.
nombre dinterlocuteurs nombre de cles secr`etes nombre de cles publiques
2 1 2
3 3 3
4 6 4
5 10 5
.
.
.
.
.
.
.
.
.
10 45 10
.
.
.
.
.
.
.
.
.
100 4950 100
.
.
.
.
.
.
.
.
.
1000 499 500 1 000
.
.
.
.
.
.
.
.
.
1 000 000 499 999 500 000 1 000 000
Figure 4.1: Nombre de clefs `a echanger
Par contre dans un syst`eme `a clef publique il faut autant de paires de clefs
quil y a dinterlocuteurs. Chaque interlocuteur dispose en eet dune clef
publique qui gure dans un annuaire et que nimporte qui peut utiliser pour
crypter les messages qui lui sont adresses et dune clef privee, strictement
personnelle, pour decrypter les messages quil re coit.
4.5.1 Protocole dechange de clefs.
Die, Hellmann et Merkle ont resolu vers 1974 le probl`eme de partage dune
cle secr`ete sans envoi physique de la clef.
Leur protocole utilise de larithmetique modulaire, cf. la sous-section 13.3.4.
Ils travaillent dans les entiers modulo un nombre premier p. Leur alo-
gorithme est le suivant:
1. Alice et Bob choisissent dun commun accord sur une ligne non prote-
gee un grand nombre premier p. et un generateur de (Z/pZ)

4.5. LES

ECHANGES DE CLEFS 41
2. Alice choisit a et calcule
a
=
a
(mod p)
3. Bob choisit b et calcule
b
=
b
(mod p)
4. Alice et Bob echangent
a
et
b
sur un canal non necessairement
protege
5. Alice calcule
a
b
(mod p) et Bob calcule
b
a
(mod p)
On a

a
b

ab

b
a
(mod p)
cest la clef commune dAlice et Bob.
Surete du protocole dechange de clefs.
Pourquoi ce protocole est-il s ur? Si
`
Eve intercepte la communication entre
Alice et Bob, elle peut lire les nombres
a
et
b
.
Pour calculer la clef commune dAlice et de Bob, il faut quEve puisse cal-
culer
ab
`a partir de
a
et
b
en connaissant . La seule methode connue
actuellement est de trouver a et b `a partir de
a
et
b
, cest `a dire quelle
puisse calculer le logarithme discret dans F
p
.
Pour linstant il nexiste pas dalgorithme rapide, cest ` a dire polynomial
en temps en fonction de la taille des donnees, pour calculer le logarithme
discret dans F
p
. Les meilleurs algorithmes connus sont sous-exponentiels,
cf. la sous-section 13.4. Pour un premier p de lordre de 10
500
il faut des
mois, voire des annees, pour calculer un logarithme discret.
Par contre cet echange de clef peut-etre soumis `a dautres types dattaques.
Chapitre 5
Applications de la cryptographie.
Jusquau 20-i`eme si`ecle la cryptographie (legale) etait essentiellement reser-
vee aux militaires et aux diplomates et accessoirement aux industriels et
banquiers.
Le developpement des moyens de communications electromagnetiques facile
`a intercepter, des stockages de donnees condentielles dans des sites assez
faciles `a penetrer et sur des supports (bandes ou disques, magnetiques op-
tiques) faciles `a dupliquer ont genere une demande de cryptosyst`emes s urs,
faciles demploi et rapides pour des usages civils et commerciaux.
Les codes symetriques ou `a clefs secr`etes, type DES (Data Encryption Stan-
dard), IDEA (International Digital Encryption Algorithm), AES (Advanced
Encryption Standard) ont ete crees pour couvrir ces besoins. Lapplication
premi`ere de la cryptographie reste encore la transmission securisee de don-
nees sensibles mais dautres applications commencent `a se developper.
Le commerce en ligne (e-commerce: paiement par carte bancaire...), les
transactions bancaires et boursi`ere (e-banking:la consultation des donnees
bancaires, ordres de bourse, virements de compte `a compte,...), ladminis-
tration en ligne (e-administration: declaration dimpots, paiement de la
TVA pour les entreprise,...), la television payante (chane payante, pay per
view,...), la protection des telecommunications (internet, WIFI, Bluetooth,
GSM, telephonie mobile,...), lidentication automatique (avions, camions
suivi par GPS,...), le tatouage ou watermarking des donnees numeriques
ainsi que la gestion des droits numeriques (digital right management), etc.
ont entrane une explosion de lutilisation de la cryptographie mais aussi une
extension de son champ dapplications.
Cette extension a ete facilitee par la mise au point des procedes de transferts
de clefs de Die et Hellman et des codes asymetriques ou `a clefs publiques
42
5.1. QUEL CRYPTOSYST
`
EME CHOISIR 43
de type RSA ou El Gamal.
Les codes `a clef publique permettent de resoudre avec des protocoles legers
les questions de transfert de clefs, didentication, dauthentication, de
signature entre correspondants.
Aujourdhui les plus gros utilisateurs de cryptosyst`emes sont les institu-
tions nanci`eres (banques, bourses,...), les telecommunications (telephonie
mobile, WIFI, Internet, television payante,...), les sites dachats en ligne, ...
Il est probable que le tatouage ou watermarking des donnees numeriques
ainsi que la gestion des droits numeriques (digital right management
ou DRM) vont entraner une demande accrue de cryptographie.
Le mariage de la cryptographie et de la theorie de la complexite aboutit `a
des extensions spectaculaires du champ de la cryptographie classique. Ces
nouvelles applications sont developpees au chapitre 11 page 134.
5.1 Quel cryptosyst`eme choisir.
Chacun des cryptosyst`emes existant codes par ots, codes par blocs `a cle
secr`ete, codes `a cles publiques ont leurs avantages et leurs inconvenients. Ils
ont chacuns des applications privilegiees et sont souvent utilises en associa-
tion, cf. PGP.
Les codes par ots bases sur les registres `a decalage sont utilises dans les tele-
communications (television `a peage, telephones portables,...), `a cause de leur
rapidite et leur facilite `a etre implemente dans des circuits electroniques. Ils
permettent de faire du codage et du decodage `a la volee en temps reel. Par
contre leur faible resistance aux attaques et laugmentation de la puissance
de calcul font quils seront probablement supplantes `a terme par des syst`emes
plus s urs.
Les codes par blocs symetriques ou `a cle secr`ete sont les plus employes car ils
realisent un excellent compromis entre rapidite et securite. Ils ne necessitent
que des clefs assez courtes pour un bon niveau de securite (128/256 bits). Par
contre ils necessitent dechanger de nombreuses cles secr`etes ce qui constitue
un risque pour leur securite. On peut les associer `a un cryptosyst`eme `a clef
publique pour echanger les clefs qui doivent etre changees tr`es reguli`erement
pour garder une bonne securite et ausi pour realiser les signatures et authen-
tications.
Les cryptosyst`emes asymetriques ou `a clefs publiques sont plus lents. Ils
necessitent des cles longues (1024 `a 2048 bits actuellement) sauf les codes
44 CHAPITRE 5. APPLICATIONS DE LA CRYPTOGRAPHIE
elliptiques (128 `a 256 bits actuellement). Ils ne necessitent pas dechange
de cles secr`etes et permettent de realiser facilement des fonctionalites tr`es
utiles (signature, authentication, non repudiation,...).
5.2 Quelques utilisations de la cryptographie.
La necessite de pouvoir identier de mani`ere s ure:
le titulaire dun compte en banque qui veut retirer de largent, ou qui
paye par carte bancaire,
sur un champ de bataille ses propres troupes et celles de lennemi,...
a entrane le developpement des protocoles didentication largement
bases sur les principes des codes asymetriques.
La recherche dune securite accrue pour les sites securises de paiement en
ligne prote du developpement
Des protocoles de preuves sans apport de connaissance.
De la signature aveugle.
bases sur la theorie de la preuve sans apport de connaissance (zero-
knowledge proof ).
La necessite de conserver lanonymat dans certaines situations (secret medi-
cal par exemple, secret de la vie privee, etc..) peut etre assure gr ace au
Transfert inconscient.
Il y a encore bien dautres applications.
5.3 Quelles mathematiques pour la cryptographie.
Actuellement tous les cryptosyst`emes utilisent des mathematiques. Elles
sont utilisees aussi pour denir et tester la securite des cryptosyst`emes.
Parmi les disciplines mathematiques utilisees pour la cryptographie on a:
Logique: theorie de la complexite.
Probabilites pour la theorie de linformation.
Analyse harmonique pour la theorie du signal
5.4. LUTTE CONTRE LE BROUILLAGE 45
Combinatoire (theorie de graphes): construction de cryptosyst`emes
asymetriques, preuves sans apport dinformation, partage de secret `a
seuil.
Alg`ebre: theorie des corps nis, des polynomes sur un corps ni,...
pour les codes symetriques.
Theorie des nombres (arithmetique modulaire, theorie algebrique des
nombres) : construction de cryptosyst`emes asymetriques (RSA, El-
Gamal), generateurs de nombres aleatoires.
Geometrie algebrique sur un corps ni: construction de cryptosys-
t`emes bases sur les courbes elliptiques sur un corps nis, cryptosys-
t`emes bases sur les codes correcteurs derreurs.
Algorithmique (alg`ebre, theorie des nombres et geometrie eective):
mesure de la complexite algorithmique, realisation pratique dalgo-
rithmes performants, evaluation de la securite des cryptosyst`emes.
La realisation pratique des cryptosyst`emes repose sur une implanta-
tion informatique, leur degre de securite, leurs performances en
dependent grandement.
5.4 Lutte contre le brouillage.
Le canal de transmission dun message est souvent brouille de mani`ere na-
turelle (parasites dus aux activites humaines ou aux phenom`enes naturels
dans les transmissions electromagnetiques, hertziennes ou laires).
Le stockage des donnees se degrade naturellement avec le temps (action des
particules tr`es energiques, poussi`eres, rayures sur les CD et DVD, etc.).
Pour lutter contre tous ces brouillages on dispose de la theorie des codes
correcteurs derreurs. Elle est basee
sur la theorie des espaces vectoriels sur un corps ni.
sur la theorie des polynomes sur un corps ni.
plus generalement sur la geometrie algebrique sur un corps ni.
46 CHAPITRE 5. APPLICATIONS DE LA CRYPTOGRAPHIE
Exemples 5.4.1. Exemples de codes correcteurs derreurs
Lexemple le plus simple de code correcteur derreurs est la repetition du
message un certain nombre de fois en esperant que les parasites (supposes
aleatoires) naecteront pas toujours la meme partie du message. Mais cette
methode est lourde pour des messages longs et ralentit fortement la trans-
mission des donnees.
Autre exemple de code correcteur derreurs: on suppose que le message est
une suite de 0 et de 1 (des bits). On les groupe par paquets de 7 et on ajoute
dans chaque paquet de 7 bits un huiti`eme bit (0 ou 1) de telle sorte que la
somme de ces 8 chires soit paire (code de Hamming). Ce code rep`ere au
plus une erreur dans chaque groupe de 8 bits.
Chapitre 6
Codes `a condentialite parfaite.
La theorie de linformation due `a Claude Shannon, cf. chapitre 13.1, permet
de denir un code ` a condentialite parfaite. Grossi`erement il sagit de
codes tels que la connaissance du texte crypte ne permette davoir aucune
information sur le texte en clair.
De tels codes existent, ce sont les codes de Vernam ou codes ` a masques
jetables, (1917). Ils reposent sur la fabrication de clefs au hasard aussi
longues que le texte `a coder et qui ne servent quune fois.
La mise en oeuvre de ces codes est lourde et delicate. La fabrication de clefs
au hasard est un probl`eme tr`es dicile et mal resolu. Le stockage et la
transmission de ces cles posent un probl`eme de securite.
Ils sont rarement utilises.
Le principe de ces codes est le suivant. On tranforme le texte en une suite
de chires en base b (souvent b = 2). On fabrique ensuite une suite aleatoire
de chires de meme longueur et lon ajoute (on XORe) les deux suites ainsi
obtenues sans retenue, cest `a dire que lon fait le calcul chire `a chire
modulo b.
Exemple 6.0.2. On transforme les lettres de lalphabet en nombres de 1 `a
26 donc ici b = 26
lettre codee lettre claire+lettre de la cle mod 26
On code le message chiens qui comporte 6 lettres avec la clef KZUTEG
(message=CHIENS) + (clef=KZUTEG) = NHDYSZ
On constate que si lon avait envoye le message cerise avec la cle KCNPZC
on aurait obtenu
47
48 CHAPITRE 6. CODES
`
A CONFIDENTIALIT

E PARFAITE
(message=CERISE) + (cle=KCNPZC) =NHDYSZ
Il est donc impossible de remonter au texte clair si on change de cle aleatoi-
rement `a chaque fois.
Cet exemple montre que la condentialite est parfaite. Ces codes sont tr`es
s urs. Mais leur mise en oeuvre est tr`es delicate et ils sont tr`es lents.
Chapitre 7
Registres `a decalage.
On veut des codes par ots qui imitent les codes de Vernam mais qui soient
tr`es rapides et tr`es faciles `a mettre en oeuvre an de pouvoir coder et decoder
`a la volee en temps reel (Television, radio, DVD, cinema, telephones porta-
bles et mobiles,...).
Une famille de tels codes est basee sur les registres ` a decalage ` a retroac-
tion lineaire, on abregera souvent leur nom en registre `a decalage, ou
suites recurrentes lineaires sur un corps ni ou encore dans la ter-
minologie anglo-saxone linear feedback shift register) en abrege LFSR.
On fabrique avec les registres `a decalage des suites pseudo-aleatoires
pour generer la clef du code. Ces codes sont beaucoup moins s urs que les
codes de Vernam mais ne necessitent pas la fabrication et la transmission
dune clef aleatoire de la longueur du message `a transmettre. Ils sont aussi
tr`es utilises pour le codage par ots.
La methode de codage est la XORisation du texte en clair par la suite
construite `a laide du LFSR.
7.0.1 Registres `a decalage ou suites recurrentes lineaires sur un
corps ni.
On consid`ere le corps ni `a 2 elements F
2
Z/2Z, cf. chapitre 13.6.1
On xe un entier m, la longueur de la recurrence, et des elements
k
1
, . . . , k
m
Z/2Z, les conditions initiales
c
1
, . . . , c
m
Z/2Z les coecients de la recurrence
On construit une suite delements (z
i
)
iN
de Z/2Z:
z
1
= k
1
, . . . , z
m
= k
m
, z
m+1
= c
m
z
1
+ +c
1
z
m
49
50 CHAPITRE 7. REGISTRES
`
A D

ECALAGE
z
m+i
= c
m
z
i
+ +c
1
z
m1+i
=
m1

j=0
c
j+1
z
m1j+i
On montre facilement que la suite ainsi construite est periodique (i.e. il
existe T N tel que z
i+T
= z
i
pour i assez grand); mais si on choisit bien
les c
j
la periode est grande devant m.
Exemple 7.0.3. Exemple: m=4, (k
1
, k
2
, k
3
, k
4
) = (1, 0, 0, 0) et
z
i+4
= (z
i
+z
i+1
) mod 2
On verie que la periode est 15.
En eet les 15 premiers elements de la suite sont
100010011010111
Ensuite on a z
16
= 1, z
17
= 0, z
18
= 0, z
19
= 0 et donc la suite se rep`etera
`a lidentique.
Denition 7.0.1. Lensemble constitue par les conditions initiales et les co-
ecients de la recurrence est appele un registre `a decalage `a retroaction
lineaire ou LFSR.
Lapplication de
_
F
2
_
m
dans lui meme qui au vecteur
_
_
_
_
_
_
_
u
m+i1
u
m+i2
.
.
.
u
i+1
u
i
_
_
_
_
_
_
_
associe le
vecteur
_
_
_
_
_
_
_
u
m+i
u
m+i1
.
.
.
u
i+2
u
i+1
_
_
_
_
_
_
_
est clairement F
2
-lineaire.
Proposition 7.0.2. Soit (u
n
)
nN
une suite recurrente lineaire de relation
de recurrence
z
m+i
= c
m
z
i
+ +c
1
z
m1+i
=
m1

j=0
c
j+1
z
m1j+i
La matrice, T, associee ` a lapplication lineaire
F
m
2
F
m
2
51
_
_
_
_
_
_
_
u
i
u
i+1
.
.
.
u
m+i2
u
m+i1
_
_
_
_
_
_
_

_
_
_
_
_
_
_
u
i+1
u
i+2
.
.
.
u
m+i1
u
m+i
_
_
_
_
_
_
_
est
T =
_
_
_
_
_
_
_
_
0 1 0 . . . 0
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 0 . . . 0 1
c
m
c
m1
. . . c
2
c
1
_
_
_
_
_
_
_
_
Cette matrice est appelee la matrice de transition du LFSR
Demonstration: facile
`
A une suite recurrente lineaire donne par la relation de recurrence z
m+i
=

m1
j=0
c
j+1
z
m1j+i
on associe un polynome, C(X) = X
m

m1

k=0
c
mk
X
k
,
appelee le polyn ome caracteristique de la recurrence. Les c
k
,= 0 avec
1 k m sont appele branchements pour une raison qui apparat sur le
schema 7.1 page 52. On peut realiser sous forme dun circuit electronique
une suite recurrente lineaire de longueur m sur le corps F
2
.
On dispose de m memoires, (z
i
)
0im1
, appelees bascules pouvant cha-
cune contenir un symbole binaire 0 ou 1. Ces cases sont contr olees par une
horloge.
`
A chaque pas dhorloge le contenu de la memoire z
i1
est remplacee
par celle de la memoire z
i
pour 1 i m1 le contenu de la memoire z
0
est envoye `a lexterieur pour etre utilise et le contenu de la memoire z
m1
est remplace par la combinaison
z
m
= c
1
z
m1
+c
2
z
m2
+ +c
i
z
mi
+ +c
m1
z
1
+c
m
z
0
conformement au schema de la gure 7.1
Autrement dit dans le fonctionnement dun LFSR, `a chaque pas dhorloge
on sort le bit de plus petit poids; tous les bits sont decales vers la droite et
le bit de plus grand poids est mis `a jour par la formule de recurrence.
Il y a une deuxi`eme mani`ere de realiser un LFSR qui correspond au schema
7.2 page 52:
On consid`ere les donnees suivantes:
52 CHAPITRE 7. REGISTRES
`
A D

ECALAGE

z
m1
. . . z
m2
c
1
c
2 c
m
c
m1
z
1
z
0

Figure 7.1: Diagramme dun LFSR (presentation de Fibonacci)

c
m2
Q
1
Q
2
Q
3
Q
m1
c
m1
c
m1
Figure 7.2: Diagramme dun LFSR (presentation de Galois)
1. un entier m
2. m1 elements de F
2
Q
(0)
1
,..., Q
(0)
i
,..., Q
(0)
m
, les conditions initiales
3. m nombres de F
2
, a
0
, a
1
,.., a
i
,..., a
m1
, a
m
avec a
0
,= 0 et a
m
,= 0.
`
A partir de ces donnees initiales on construit pour 1 i m une suite
delements de F
2
, k Q
(k)
i
, de la mani`ere suivante:
Q
(k)
i
= Q
(k1)
i1
+a
i1
Q
(k1)
m
pour i 2
Q
(k)
1
= Q
(k)
m
La suite k Q
(k)
m
est un LFSR, appele LFSR de Galois.
Exemple 7.0.4. C(X) = X
4
X
3
1, z
n+4
= z
n+3
+ z
n
. La suite de
condition initiale (0, 1, 1, 0) se compl`ete en
(0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1)
et ensuite elle est periodique.
53
7.0.2 Cryptage avec un LFSR.
Pour crypter `a laide dun LFSR on commence par transformer le message,
M, en une suite binaire (par exemple `a laide des codes ASCII des symboles),
cest `a dire en une suite, (m
i
)
iN
, delements de F
2
puis on XORise la suite
obtenue avec la suite recurrente lineaire fournie par le LFSR, (x
i
)
iN
pour
obtenir le message code, (c
i
)
iN
sous forme dune suite delements de F
2
:
m
0
m
1
m
2
. . . m
i
. . .
. . . . . .
x
0
x
1
x
2
. . . x
i
. . .
c
1
c
2
c
3
. . . c
i
. . .
Le decodage est symetrique cest `a dire que lon XORise le message chire
(suppose etre une suite binaire) avec recurrente lineaire fournie par le LFSR.
Lexemple suivant on donne un exemple academique de cryptage et decryp-
tage `a laide dun LFSR
Exemple 7.0.5. (suite de lexemple 7.0.3) On consid`ere le LFSR sur F
2
,
deni par la relation de recurrence
u
n+4
= u
n+1
+u
n
et les conditions initiales (k
0
, k
1
, k
2
, k
3
) F
4
2
.
Montrer que pour tout choix de conditions initiales la periode de la suite
recurrente lineaire (u
n
)
nN
est majoree par 15.
On code par XORisation `a laide du LFSR precedent avec les conditions
initiales (k
0
, k
1
, k
2
, k
3
) = (1, 0, 0, 0). Chaque lettre de lalphabet est codee
par le quintuplet (a
0
, a
1
, a
2
, a
3
, a
4
) tel que a
0
+2a
1
+4a
2
+8a
3
+16a
4
soit le
rang de la lettre dans lalphabet ordinaire compte entre 1 et 26, le quin-
tuplet (0, 0, 0, 0, 0) correspond `a lespace entre deux mots (exemples: A
la premi`ere lettre de lalphabet est codee (1, 0, 0, 0, 0), M la treizi`eme de
lalphabet lettre est codee (1, 0, 1, 1, 0), T la vingti`eme lettre de lalphabet
est code (0, 0, 1, 0, 1).
Le debut de la suite n u
n
est
u
0
= 1, u
1
= 0, u
2
= 0, u
3
= 0, u
4
= u
0
+u
1
= 1, u
5
= u
1
+u
2
= 0,
u
6
= u
2
+u
3
= 0, u
7
= u
3
+u
4
= 1, u
8
= u
4
+u
5
= 1, u
9
= u
5
+u
6
= 0, ...
Donc si on veut coder TA on le tranforme par le codage precedent en
(0, 0, 1, 0, 1, 1, 0, 0, 0, 0) on XORise cette suite ni avec la suite (u
0
, . . . , u
9
)
54 CHAPITRE 7. REGISTRES
`
A D

ECALAGE
et il vient
0, 0, 1, 0, 1, 1, 0, 0, 0, 0
1, 0, 0, 0, 1, 0, 0, 1, 1, 0
=1, 0, 1, 0, 0, 1, 0, 1, 1, 0
=EM
7.1 Utilisation pratique des LFSR en cryptographie.
Les LFSR sont facile ` a casser (algorithme de Massey-Berlekamp), do` u plu-
sieurs types dameliorations consistant `a utiliser plusieurs LFSR que lon
combine par une fonction booleenne cest `a dire une fonction dun en-
semble ni dans un ensemble ni. Cette fonction est appelee fonction de
combinaison ou fonction de ltrage. On lui demande de satisfaire cer-
tains crit`eres cryptographiques.
Remarquons que le cardinal de lensemble, B
n
, des fonctions boolennes de
F
2
n dans F
2
est 2
2
n
et quil croit donc extr`emement vite
n 4 5 6 7 8
B
n
2
16
2
32
2
64
2
128
2
256
Le choix de bonnes fonctions cryptographiques necessite donc des etudes
mathematiques.
Les ameliorations les plus utilisees sont:
Non Linear Combining Generator en abrege NLCG: combinai-
son booleenne en sortie de plusieurs LFSR.
Non Linear Filter Generator en abrege NLFG: ltrage des reg-
istres dun meme LFSR par une fonction booleenne.
Clock Control Generator en abrege CCG: contr ole dhorloge
Un NLCG utilise n LFSR dont les sorties sont les entrees dune fonction
booleenne, f, `a n variables: F
n
2
F
2
, son diagramme est donne `a la gure
7.9 page 61
Un NLFG de longueur m utilise un LFSR (de longueur m) dont les bits
sont les entrees dune fonction booleenne, f, `a m variables: F
m
2
F
2
, son
diagramme est donne `a la gure 7.3 page 55
Nous allons donner trois exemples de fonctions booleennes.
7.1. UTILISATION PRATIQUE DES LFSR EN CRYPTOGRAPHIE 55
LFSR 2
LFSR 1
f
.
.
.
LFSR n
Figure 7.3: Diagramme dun NLCG
c
1
c
2
c
m
c
m1
z
m1
z
m2
. . . z
1
z
0
f

Figure 7.4: Diagramme dun NLFG
56 CHAPITRE 7. REGISTRES
`
A D

ECALAGE
7.1.1 Le syst`eme A5/1.
Cet exemple est tire de la documentation de la norme A5/1, les notations
sont donc un peu dierentes de celles qui prec`edent. Le syst`eme A5/1 est
utilise pour proteger les liaisons GSM. Il repose sur lemploi de trois LFSR,
voir la gure 7.7, dont les polynomes associes sont:
C
1
(X) = X
19
+X
18
+X
17
+X
14
+ 1
C
2
(X) = X
22
+X
21
+ 1
C
1
(X) = X
23
+X
22
+X
21
+X
8
+ 1 .
Remarquer que 19+22+23 = 64, cest donc le nombre de conditions initiales
necessaires pour pouvoir decrire compl`etement les trois LFSR.
La synchronisation de ces LFSR est xee par les bits de declenchement, s
1
,
s
2
, s
3
situes en position 9, 11, 11 en partant de 0. Le registre est mis `a jour
si son bit de declenchement est en accord avec la majorite des trois bits de
declenchement. La fonction de majorite secrit
Maj(s
1
, s
2
, s
3
) = (s
1
s
2
) (s
1
s
3
) (s
2
s
3
)
o` u les tables des operations ou operation et (multiplication bit `a bit
modulo 2 sans retenu) et ou operation ou exclusif (addition bit `a
bit modulo 2 sans retenue) sont donnes par les gures 7.5 et 7.6:
s
1
s
2
0
1
0 0 0
1 0 1
Figure 7.5: table de
s
1
s
2
0
1
0 0
1
1
1 0
Figure 7.6: table de
Donc au moins deux registres sont mis `a jour `a chaque unite de temps.
La mise `a jour des registres est faite de la mani`ere suivante: on calcule b
i
par les formules suivantes
b
1
= R
1
[13] R
1
[16] R
1
[17] R
1
[18]
7.1. UTILISATION PRATIQUE DES LFSR EN CRYPTOGRAPHIE 57
b
2
= R
2
[20] R
2
[21]
b
3
= R
3
[7] R
1
[20] R
1
[21] R
1
[22]
Ensuite si le registre i est mis `a jour on supprime R
i
[m
i
] (m
1
= 18, m
2
= 21,
m
3
= 22) on deplace le contenu de tous les registres vers la gauche et on
ins`ere b
i
dans le registre R
i
[0].
Le bit de sortie, b, est
b = R
1
[18] R
2
[21] R
3
[22]
Il peut arriver que le registre i ne soit jamais actualise.
b1

b3

b2
R
1
[18]
R
1
[13]
R
1
[0]
R
2
[21]
R
2
[0]
R
3
[7]
R
3
[0]
b


s
1
s
2
s
3
R
1
[17]
R
1
[16]
R
2
[20]
R
3
[22]
R
3
[21]
R
3
[20]
Figure 7.7: Le cryptosyst`eme A5/1
7.1.2 Le syst`eme bluetooth/E0.
Le syst`eme bluetooth/E0 est un syst`eme de securisation des communica-
tions radio entre une unite centrale et des peripheriques (clavier, souris,
imprimante,...) reposant sur un syst`eme de chirage en continu (par ots),
E0.
Il utilise quatre LFSR donnes par les polyomes
58 CHAPITRE 7. REGISTRES
`
A D

ECALAGE
C
1
(X) = X
25
+X
20
+X
12
+X
8
+ 1
C
2
(X) = X
31
+X
24
+X
16
+X
12
+ 1
C
3
(X) = X
33
+X
28
+X
24
+X
4
+ 1
C
4
(X) = X
39
+X
36
+X
28
+X
4
+ 1
dont les sorties sont notees x
0
, x
1
, x
2
, x
3
. Le ux de sortie du cryptosyst`eme
est donne par la boucle suivante:
y
t
=
4

i=1
x
i
t
0, 1, 2, 3, 4
z
t
= (
4
i=1
x
i
t
) c
0
t
0, 1
s
t+1
= (s
1
t+1
, s
0
t+1
) =
_
y
t
+z
t
2
_
0, 1, 2, 3
c
t+1
= (c
1
t+1
, c
0
t+1
) = s
t+1
T
1
(c
t
) T
2
(c
t1
) 0, 1, 2, 3 Sortie : z
t
avec T
1
(x
1
, x
0
) = (x
1
), T
2
= (x
0
, x
0
+x
1
) et o` u (c
1
t+1
, c
0
t+1
) designe les deux
bits dun nombre compris entre 0 et 3 ecrit en base 2 (ici designe le ou
exclusif ou addition sans retenue modulo 2 bit `a bit).
Remarque 7.1.1. Les x
i
appartiennent `a 0, 1 considere tantot comme
des elements de F
2
,tantot comme des elements de Z, meme remarque pour
z
t
, alors que les y
t
, s
t
et c
t
sont consideres comme des elements de Z.
Exercices.
7.1.1. Montrer que le LFSR de Galois est eectivement un LFSR.
7.1.2. On consid`ere le LFSR sur F
2
, deni par la relation de recurrence
u
n+4
= u
n+1
+u
n
et les conditions initiales (k
0
, k
1
, k
2
, k
3
)
_
F
2
_
4
.
1. Montrer que pour tout choix de conditions initiales la periode de la
suite recurrente lineaire (u
n
)
nN
est majoree par 15.
2. On code par XORisation `a laide du LFSR precedent avec les condi-
tions initiales (k
0
, k
1
, k
2
, k
3
) = (1, 0, 0, 0). Chaque lettre de lalphabet
est codee par le quintuplet (a
0
, a
1
, a
2
, a
3
, a
4
) tel que a
0
+ 2a
1
+ 4a
2
+
8a
3
+ 16a
4
) soit le rang de la lettre dans lalphabet ordinaire compte
entre 1 et 26, le quintuplet (0, 0, 0, 0, 0) correspond `a lespace entre
deux mots (exemples: A la premi`ere lettre de lalphabet est codee
(1, 0, 0, 0, 0), M la treizi`eme de lalphabet lettre est codee (1, 0, 1, 1, 0)).
7.1. UTILISATION PRATIQUE DES LFSR EN CRYPTOGRAPHIE 59
(a) Crypter avec ce LFSR le message suivants Les sanglots longs des
violons de lautomne bercent mon coeur dune langueur monotone
(b) Decoder le message page 60.
7.1.3. Donner les suites recurrentes lineaires associees aux trois LFSR du
syst`eme A5/1.
7.1.4.

Etude du syst`eme A5/1.
Lensemble des LFSR R
1
, R
2
, R
3
comprend 64 registres. dont les remplis-
sage initial constitue la clef du cryptosyst`eme A5/1.
1. Montrer quil existe des etats initiaux de R
1
tels que quels que soit les
etats initiaux de R
2
et R
3
, R
1
ne change pas au cours du temps.
2. Conrmer ou Inrmer la phrase suivante: Il existe des clefs dierentes
de A5/1 qui gen`erent une suite constante de zeros (b = 0 toujours).
3. Donner une bonne inferieure du nombre de clefs de A5/1 qui genere
une suite constante de zeros.
60 CHAPITRE 7. REGISTRES
`
A D

ECALAGE
1 1 0 0 0 1 0 0 1 0 1 1 0 0 1
1 0 1 0 1 1 0 0 1 0 1 1 1 0 0
1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
0 0 1 1 1 1 0 1 1 0 0 0 1 0 1
1 1 1 1 1 0 0 1 1 0 0 0 0 0 1
0 0 0 1 1 0 0 0 1 0 0 0 1 0 1
Figure 7.8: decodage `a laide dun LFSR premi`ere partie
7.1. UTILISATION PRATIQUE DES LFSR EN CRYPTOGRAPHIE 61
1 0 0 0 1 0 1 0 1 1 0 0 1 0 1
1 0 1 1 1 0 0 0 0 0 0 0 0 1 1
1 0 1 0 0 1 0 1 1 0 1 1 0 0 1
0 0 1 0 1 1 0 0 1 1 0 1 1 1 0
0 0 1 0 1 0 0 1 1 0 1 0 1 1 1
Figure 7.9: decodage `a laide dun LFSR suite
Chapitre 8
Codes `a clefs secr`etes.
Devant lexplosion des besoins de cryptages pour des donnees non-classiees
(cest `a dire non militaires et non diplomatiques) le National Bureau
of Standards des Etats-Unis a lance un appel dore avec un cahier des
charges en 1973.
Cet appel dore a donne naissance au cryptosyst`eme DES (Data En-
crytion Standard). Il a ete publie en 1975 et adopte par le NBS en
1977 comme standard de cryptage pour les applications non classiees. Il
reprend les principes, schema de Feistel, cf. sous-section 8.4.1, et une partie
du syst`eme de cryptage dIBM denomme LUCIFER.
Il est `a la base dautres cryptosyst`emes plus recents comme IDEA, FEAL,
CAST, RC5, BLOW-FISH.
Il est remplace aujourdhui par AES (Advanced Encrytion Standard)
de J. Daeme et V. Rijmen, base sur un principe un peu dierent (Reseau de
substitution-permutation, cf. la section 8.1), avec une cle plus longue (128
`a 256 bits), plus structure et avec des fonctionnalites plus etendues. AES a
ete retenu en 2000 apr`es un appel dore international.
Nous allons tout dabord decrire un mod`ele assez general de syst`eme cryp-
tographique `a clef publique, les reseaux de substitution-permutation, qui
modelise assez bien et DES et AES ainsi que deux methodes dattaque con-
tre ce mod`ele, la cryptanalyse lineaire et la cryptanalyse dierentielle. Ces
deux attaques font partie des attaques classiques contre ce type de syst`eme
et elles ont demontre leur ecacite contre des syst`emes proposes concurem-
ment `a DES et AES.
62
8.1. R

ESEAUX DE SUBSTITUTION-PERMUTATION 63
8.1 Reseaux de substitution-permutation.
Nous allons decrire un schema de chirement assez general les reseaux de
substitution-permutation qui couvrent des syst`emes classiques de chire-
ment `a clef secr`ete ainsi que deux methodes dattaques contre eux la crypt-
analyse lineaire et la cryptanalyse dierentielle.
Un reseau de substitution-permutation est un type particulier dalgorithme
de chirement itere qui modelise bien les deux exemples de chirement iteres
que nous decrirons le DES et lAES. Cest un algorithme de chirement iteres
par blocs. Il rep`ete N
e
fois un algorithme de chirement, g, appele fonction
detage. On introduit une clef secr`ete K `a partir de laquelle on construit
N
e
+1 sous-clefs, K
1
, K
2
,..., K
Ne+1
, appelees clefs detages. Lalgorithme
qui permet de construire les K
i
`a partir de K est appele lalgorithme de
diversication des clefs
On se donne deux entiers et m. Un texte clair et un texte chire seront
des vecteurs de F
m
2
donc des vecteurs de longuer .m constitues de 0 et de
1. On se donne aussi une permutation

S
: 0, 1

0, 1

et une permutation

P
: 1, 2, . . . , m 1, 2, . . . , m
Une chane binaire x = (x
1
, x
2
, . . . , x
m
) 0, 1
m
peut etre consideree
comme la concatenation de m sous chanes de longueur
x = x
(1)
[[x
(2)
[[ . . . [[x
(m)
et pour 1 i m on a
x
(i)
= (x
(i1)+1
, . . . , x
i
).
On notera w
e
= (w
e1
i
)
1im
la chaine dentree `a letage e qui est en fait
la chane de sortie de letage e 1. Lalgorithme consiste dans les etapes
suivantes
1. XORiser w
e1
avec la clef de letage e, K
e
; on note le resultat
u
e
=
_
(u
e
1
, u
e
2
, . . . , u
e
m
)
u
e
(1)
[[u
e
(2)
[[ . . . [[u
e
(m)
avec u
e
(i)
= (u
e
(i1)+1
, . . . , u
e
i
)
64 CHAPITRE 8. CODES
`
A CLEFS SECR
`
ETES
2. Appliquer la permutation
S
`a chacune des S-botes, ou chanes, u
e
(i)
,
on note le resultat
v
e
=
_
(v
e
1
, v
e
2
, . . . , v
e
m
)
v
e
(1)
[[v
e
(2)
[[ . . . [[v
e
(m)
avec v
e
(i)
= (v
e
(i1)+1
, . . . , v
e
i
)
3. Appliquer la permutation
P
au indices de v
e
, On note w
e
le resultat,
cest `a dire que
w
e
= v
e

P
(1)
, v
e

P
(2)
, . . . , v
e

P
(m)
4.
`
A la sortie de letage N
e
, XORiser v
Ne
avec K
Ne+1
, cest le message
code y, donc y = v
Ne
K
Ne+1
.
Exemple 8.1.1. . Cet exemple est tire de [31] On suppose = m = N
e
= 4.
On code lhexadecimal sur des quadruplets de 0 o` u de 1 de la mani`ere
suivante
0 (0, 0, 0, 0), 1 (0, 0, 0, 1), . . . , 9 (1, 0, 0, 1),
A (1, 0, 1, 0), F (1, 1, 1, 1)
On dent
S
de la mani`ere suivante (lentree et la sortie sont en hexadecimal)
z 0 1 2 3 4 5 6 7 8 9 A b C D E F

S
(z) E 4 D 1 2 F B 8 3 A 6 C 5 9 0 7
`
A chaque etage 1 i 4 on 4 S-botes notee S
i
j
avec 1 j 4 sur lesquelles
agit la permutation
S
.
La permutation
P
denie de la mani`ere suivante (lentree et la sortie sont
des nombres ordinaires)
z 1 2 3 4 5 6 7 8 9

P
(z) 1 5 9 13 2 6 10 14 3
z 10 11 12 13 14 15 16

P
(z) 7 11 15 4 8 12 16
agit donc sur le mot forme des sorties des 4 S-botes.
Lalgorithme de diversication de la clef est le suivant. On part dune clef
K = (k
1
, . . . , k
32
) 0, 1
32
sur 32 bits et on denit K
e
comme les 16 bits
consecutifs de K commen cant par k
4e3
.
8.1. R

ESEAUX DE SUBSTITUTION-PERMUTATION 65
On suppose maintenant que la clef est
K = 0011 1010 1001 0100 1101 0110 0011 1111
Les sous-clefs sont alors
K
1
= 0011 1010 1001 0100
K
2
= 1010 1001 0100 1101
K
3
= 1001 0100 1101 0110
K
4
= 0100 1101 0110 0011
K
5
= 1101 0110 0011 1111
Si on part du texte clair
x = 0010 0110 1011 0111
Le chirement seectue alors de la mani`ere suivante : le texte en clair est
x = w
0
= 0010 0110 1011 0111
w
0
= 0010 0110 1011 0111
K
1
= 0011 1010 1001 0100
u
1
= 0001 1100 0010 0011
v
1
= 0100 0101 1101 0001
w
1
= 0010 1110 0000 0111
K
2
= 1010 1001 0100 1101
u
2
= 1000 0111 0100 1010
v
2
= 0011 1000 0010 0110
w
2
= 0100 0001 1011 1000
K
3
= 1001 0100 1101 0110
u
3
= 1101 0101 0110 1110
v
3
= 1001 1111 1011 0000
w
3
= 1110 0100 0110 1110
K
4
= 0100 1101 0110 0011
u
4
= 1010 1001 0000 1101
v
4
= 0110 1010 1110 1001
K
5
= 1101 0110 0011 1111
y = 1011 1100 1101 0110
y est le texte chire. Tout ceci est resume dans le diagramme 8.1 page 66
66 CHAPITRE 8. CODES
`
A CLEFS SECR
`
ETES
X
1
X
2
y
16
texte clair
S
1,1
S
1,2
S
1,3
S
1,4
S
2,1
S
2,2
S
2,3
S
2,4
S
3,1
S
3,2 S
3,3
S
3,4
S
341
S
4,2
S
4,3
S
4,4
sous clef K
1
sous clef K
2
sous clef K
3
sous clef K
4
sous clef K
5
y
1
y
2
y
16
texte crypte
etage 2
etage 1
etage 3
etage 4
Figure 8.1: Reseau de substitution permutation
8.2 Cryptanalyse lineaire.
La cryptanalyse lineaire peut etre appliquee contre tout algorithme de chif-
frement itere comme les reseaux de substitution-permutation (lexpose ci-
8.2. CRYPTANALYSE LIN

EAIRE 67
apr`es est tire de lexcellent tutorial de Howard M. Heys disponible sur inter-
net). Il sagit dun attaque `a texte clair connu. On dispose donc dun grand
nombre des paires de textes clairs et du texte correspondant chire.
Nous montrerons seulement comment determiner des parties de la clef du
dernier etage, la clef K
5
dans notre exemple, il faut ensuite tirer partie de
cette information.
On suppose quil existe une F
2
-combinaison lineaire des bits dentree et de
sortie qui ait lieu avec une probabilite nettement superieure ou nettement
inferieure `a
1
2
. Autrement dit quil existe i
1
, i
2
, . . . , i
u
et j
1
, j
2
, . . . , j
v
tels
que si x = (X
1
, X
2
, . . . X
N
sont les bits dentree (du message en clair) con-
sideres comme des variables aleatoires denies sur 0, 1 et Y
1
, Y
2
, . . . , Y
m
sont les bits de la sortie (du message chire) consideres comme des variables
aleatoires denies sur 0, 1 on ait
Pr
_
X
i
1
X
i
2
X
in
Y
j
1
Y
j
2
Y
jm
= 0
_
>>
1
2
Le principe est alors dapproximer une partie de lalgorithme de chirement
par cette combinaison lineaire sur F
2
.
Le succ`es de cette methode repose sur le lemme suivant qui necessite des
hypoth`eses rarement veriee en pratique mais qui heuristiquement justie
la methode.
Lemme 8.2.1 (Lemme dempilement). Soit des variables aleatoires inde-
pendantes X
1
, . . . , X
r
denies sur lensemble 0, 1 et on suppose que pour
1 i r il existe des nombres reels 0 p
i
1 tels que
Pr
_
X
i
= 0
_
= p
i
On denit le biais
i
de la variable aleatoire X
i
par

i
= p
i

1
2
,
1
2

i

1
2
alors le biais,
i
1
,i
2
,...,in
de la variable aleatoire X
i
1
X
i
2
X
in
est

i
1
,i
2
,...,in
= 2
n1
n

j=1

i
j
Demonstration: Voir [31].
68 CHAPITRE 8. CODES
`
A CLEFS SECR
`
ETES
X
1
X
2
X
3
X
4
Y
1
Y
2
Y
3
Y
4
0 0 0 0 1 1 1 0
0 0 0 1 0 1 0 0
0 0 1 0 1 1 0 1
0 0 1 1 0 0 0 1
0 1 0 0 0 0 1 0
0 1 0 1 1 1 1 1
0 1 1 0 1 0 1 1
0 1 1 1 1 0 0 0
1 0 0 0 0 0 1 1
1 0 0 1 1 0 1 0
1 0 1 0 0 1 1 0
1 0 1 1 1 1 0 0
1 1 0 0 0 1 0 1
1 1 0 1 1 0 0 1
1 1 1 0 0 0 0 0
1 1 1 1 0 1 1 1
Figure 8.2: valeurs possibles des 8 variables aleatoires X
i
, Y
i
Exemple 8.2.1. On continue lexemple 8.1.1 On consid`ere la S-bote de
lexemple et on consid`ere chacune des entrees x
i
0, 1, 1 i 4, de la S-
bote comme une variable aleatoire que lon note X
i
et de meme on consid`ere
la sortie y
j
0, 1, 1 j 4, de la S-bote comme une variable aleatoire
que lon note Y
j
. Le tableau 8.2 page 68 enum`ere les valeurs possibles des
8 variables aleatoires X
1
, X
2
, X
3
, X
4
, Y
1
, , Y
2
, Y
3
, Y
4
:
Les entrees des quatres premi`eres colonnes sont ligne par ligne simplement
les valeurs dentrees rangees par ordre lexicographique. Les entrees des 4
derni`eres colonnes sont les valeurs correspondantes de
S
.
On consid`ere la variable aleatoire X
1
X
4
Y
2
. La probabilite quelle
prenne la valeur 0 sobtient par exemple en comptant le nombre de ligne du
tableau precedent pour les quelles
X
1
X
4
Y
2
= 0
et en divisant par le nombre de lignes, soit 16 = 2
4
. On voit facilement que
(8.1) Pr
_
X
1
X
4
Y
2
= 0
_
= Pr
_
X
1
X
4
Y
2
= 1
_
=
1
2
Le biais de la variable aleatoire X
1
X
4
Y
2
= 0 est donc 0.
8.2. CRYPTANALYSE LIN

EAIRE 69
Par contre il est facile de voir que le biais de la variable aleatoire X
3
X
4

Y
1
Y
2
vaut
2
8
. Il nest pas diciel de calculer les biais des 2
8
= 256
variables aleatoires de cette forme.
On utilise pour representer tous ces biais la notion suivante. Chaque variable
aleatoire est ecrite sous la forme
_
4

i=1
a
i
X
i
_

_
4

i=1
b
i
Y
i
_
, a
i
, b
i
0, 1
Pour rendre la notation plus compacte on traite chacun des vecteurs binaires
(i.e. composes delements de F
2
) (a
1
, a
2
, a
3
, a
4
) et (b
1
, b
2
, b
3
, b
4
) comme des
nombres hexadecimaux (appeles somme dentree et somme de sortie).
De cette fa con chacune des 256 variables aleatoires est nomme par une paire
unique de nombres hexadeimaux (a, b).
Par exemple la variable aleatoire X
1
X
4
Y
2
a pour somme dentree
(1, 0, 0, 1) qui vaut 9 en hexadecimal et pour somme de sortie (0, 1, 0, 0) qui
vaut 4 en hexadecimal.
Pour une variable aleatoire possedant la somme dentree a = (a
1
, a
2
, a
3
, a
4
)
et b = (b
1
, b
2
, b
3
, b
4
) pour somme de sortie on note N
L
(a, b) le nombre de
8-uplets binaires (x
1
, x
2
, x
3
, x
4
, y
1
, y
2
, y
3
, y
4
) tels que
(y
1
, y
2
, y
3
, y
4
) =
S
(x
1
, x
2
, x
3
, x
4
)
et
_
4

i=1
a
i
x
i
_

_
4

i=1
b
i
y
i
_
= 0
Le biais,(a, b), de la variable aleatoire ayant a et b comme somme dentree
et de sortie est donne par
(a, b) =
N
L
(a, b) 8
16
La table qui contient toutes les valeurs de N
L
est appelee la table dappro-
ximation lineaire. On donne `a la page 70 la table dapproximation lineaire
8.3 pour le reseau de substitution-permutation etudie
Pour faire une cryptanalyse lineaire dun reseau de substitution-permutation
il faut un ensemble dapproximations lineaires des S-botes qui pourront etre
utilise pour obtenir une approximation lineaire dun reseau de substitution-
permutation moins le dernier etage. On montre comment marche le procede
sur lexemple 8.1.1.
70 CHAPITRE 8. CODES
`
A CLEFS SECR
`
ETES
a
b 0 1 2 3 4 5 6 7 8 9 A B C D E F
0 16 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
1 8 8 6 6 8 8 6 14 10 10 8 8 10 10 8 8
2 8 8 6 6 8 8 6 6 8 8 10 10 8 8 2 10
3 8 8 8 8 8 8 8 8 10 2 6 6 10 10 6 6
4 8 10 8 6 6 4 6 8 8 6 8 10 10 4 10 8
5 8 6 6 8 6 8 12 10 6 8 4 10 8 6 6 8
6 8 10 6 12 10 8 8 10 8 6 10 12 6 8 8 6
7 8 6 8 10 10 4 10 8 6 8 10 8 12 10 8 10
8 8 8 8 8 8 8 8 8 6 10 10 6 10 6 6 2
9 8 8 6 6 8 8 6 6 4 8 6 10 8 12 6 10
A 8 12 6 10 4 8 10 6 10 10 8 8 10 10 8 8
B 8 12 8 4 12 8 12 8 8 8 8 8 8 8 8 8
C 8 6 12 6 6 8 10 8 10 8 10 12 8 10 8 6
D 8 10 10 8 6 12 8 10 4 6 10 8 10 8 8 10
E 8 10 10 8 6 4 8 10 6 8 8 6 4 10 8 8
F 8 6 4 6 6 8 10 8 8 6 12 6 6 8 10 8
Figure 8.3: table dapproximation lineaire
Exemple 8.2.2. Considerons le reseau de substitutions-permutations decrit
dans lexemple 8.1.1 page 64. On veut en trouver une approximation lineaire
partielle de la forme
(8.2) x
i
1
x
i
2
x
iu
y
j
1
y
j
2
y
jv
= 0
En fait on se contentera dune appromation lineaire probabiliste, cest `a `a
dire quon demande que les variables aleatoires correspondantes verient
cette relations avec un biais impotant cest `a dire que lon demande
(8.3) Pr
_
X
i
1
X
i
2
X
iu
Y
j
1
Y
j
2
Y
jv
= 0
_
>>
1
2
ou <<
1
2
Par exemple dans la S-bote de notre exemple la relation
X
1
X
2
Y
1
Y
3
Y
4
= 0
a lieu avec un biais egal `a
1
4
, comme on le montre facilement en etudiant la
table dapproximation lineaire, ref. 8.3.
8.2. CRYPTANALYSE LIN

EAIRE 71
`
A partir des approximations lineaires locales des S-botes on peut obtenir
une approximation lineaire globale du type de la relation 8.2. On utilise les
approximations lineaires suivantes des S-botes S
i,j
:
S
1,2
:X
1
X
3
X
4
= Y
2
avec biais +
1
4
S
2,2
:X
2
= Y
2
Y
4
avec biais
1
4
S
3,2
:X
2
= Y
2
Y
4
avec biais
1
4
S
3,4
:X
2
= Y
2
Y
4
avec biais
1
4
On note U
i
, respectivement V
i
, les variables aleatoires correspondant aux
16 bits dentree de letage i, respectivement aux 16 bits de sorties de letage
i. La variable aleatoire correspondant au j-`eme bit dentree de letage i,
respectivement au j-`eme bit de sortie de letage i sera notee U
i,j
, respec-
tivement V
i,j
. Autrement dit U
i
= (U
i,j
)
1j16
et V
i
= (V
i,j
)
1j16
. On
note ausse X le texte clair et Y le texte crypte.
On ne cherche une approximation lineaire que pour les 3 premiers etages on
obtiendra ainsi quelques bits de la clef K
5
.
On a U
1
= X K
1
. On utilise lapproximation lineaire de S
1,2
pour le
premier etage et il vient avec un biais de
1
4
V
1,6
= U
1,5
U
1,7
U
1,8
(8.4)
Pour lapproximation lineaire du 2-i`eme etage il vient avec un biais de
1
4
V
2,6
V
2,8
= U
2,6
Comme U
2,6
= V
1,6
K
2,6
on a alors une approximation lineaire de la forme
avec biais
1
4
V
2,6
V
2,8
= V
1,6
K
2,6
En combinant avec 8.4 on obtient la relation
(8.5) V
2,6
V
2,8
X
5
X
7
X
8
K
1,5
K
1,7
K
1,8
K
2,6
= 0
dont le biais est
1
8
.
72 CHAPITRE 8. CODES
`
A CLEFS SECR
`
ETES
Au 3-i`eme etage on a lapproximation avec biais de
1
4
V
3,6
V
3,8
= U
3,6
et aussi avec biais de
1
4
V
3,14
V
3,16
= U
3,14
et comme U
3,6
= V
2,6
K
3,6
et U
3,14
= V
2,8
K
3,14
on a
(8.6) V
3,6
V
3,8
V
3,14
V
3,16
V
2,6
K
3,6
V
2,8
K
3,14
= 0
avec biais +
1
8
.
En combinant (8.5) et (8.6) il vient
V
3,6
V
3,8
V
3,14
V
3,16
X
5
X
7
X
8

K
1,5
K
1,7
K
3,6
K
3,14
= 0
Remarquons que
U
4,6
= V
3,6
K
4,6
U
4,8
= V
3,14
K
4,8
U
4,14
= V
3,8
K
4,14
U
4,16
= V
3,16
K
4,16
il sut de regarder le diagramme 8.1 page 66.
Il vient alors avec biais
1
32
U
4,6
U
4,8
U
4,14
U
4,16
X
5
X
7
X
8

K
= 0
avec

K
= K
1,5
K
1,7
K
3,6
K
3,14
K
4,6
K
4,8
K
4,14
K
4,16
Donc
K
est xe et vaut 0 ou 1 puisque que lon suppose que lon fait une
cryptanalyse avec des messages cryptes avec la meme clef. Par consequent
U
4,6
U
4,8
U
4,14
U
4,16
X
5
X
7
X
8
= 0
avec probabilite
15
32
ou 1
15
32
=
17
32
suivant que
K
= 0 ou 1.
Donc nalement on a une approximation lineaire partielle des 3 premiers
etages avec un biais de
1
32
. Tout ceci est resume dans le diagramme 8.4
page 73.
8.2. CRYPTANALYSE LIN

EAIRE 73
S
1,1
S
1,2
S
1,3
S
1,4
S
2,1
S
2,2
S
2,3
S
2,4
S
3,1
S
3,2 S
3,3
S
3,4
S
341
S
4,2
S
4,3
S
4,4
y
1
y
2
y
16
texte crypte
etage 2
etage 1
etage 3
etage 4
X
8
texte clair
X
7
X
5
sous clef K
3
sous clef K
4
sous clef K
5
K
5,5
. . . K
5,8
K
5,13
. . . K
5,16
sous clef K
2
K
4,8
K
4,6
K
4,14
K
4,16
sous clef K
1
K
3,6
K
3,14
K
2,6
U
4,6
U
4,8
U
4,14
U
4,16
K
1,5
K
1,7
K
1,8
Figure 8.4: Approximation lineaire
Nous montrons comment cette information peut-etre utilisee pour calculer
quelques bits de la clef. On suppose que lon a T paires de texte clair et de
74 CHAPITRE 8. CODES
`
A CLEFS SECR
`
ETES
texte chire. On va montrer comment cette attaque permet de recuperer 8
bits de la clef K
5
, `a savoir les bits
K
5,5
, K
5,6
, K
5,7
, K
5,8
, K
5,13
, K
5,14
, K
5,15
, K
5,16
Il y a 256 = 2
8
possibilites dierentes pour ces 8 bits.
On note T lensemble des T paires de texte clair et de texte chire. Pour
chaque couple (x, y) T et pour chaque sous-clef K
5
candidate il est pos-
sibleen XORisant y avec la clef K
5
et en appliquant
1
P
et
1
S
de calculer
les quantites u
4,6
, u
4,8
, u
4,14
, u
4,16
et ensuite de calculer les valeurs
x
5
x
7
x
8
u
4,6
u
4,8
u
4,14
u
4,16
prises par la variables aleatoire correspondante
T := U
4,6
U
4,8
U
4,14
U
4,16
X
5
X
7
X
8
Pour chacune des 256 sous-clefs on a un compteur que lon incremente toute
les fois que la variable aleatoire T prend la valeur zero pour un couple
(x, y) T . On sattend, et cest ce qui se produit en pratique, que pour la
plupart des sous-clefs la valeur du compteur soit `a peu pr`es
T
2
et que pour la
sous-clef correcte la valeur du compteur soit proche de
T
2

T
32
. On identie
ainsi 8 bits de la sous-clef K
5
.
Un calcul de complexite montre que si une approximation lineaire a un biais
de il faudra un nombre de paires de texte clair et de texte chiree de lordre
de c
2
o` u la constante c est petite.
8.3 Cryptanalyse dierentielle.
La cryptanalyse dierentielle utilise la comparaison du XOR de deux entrees
avec le XOR des deux sorties correspondantes.
On consid`ere x

= (x

1
x

2
. . . x

n
) et x

= (x

1
x

2
. . . x

n
) deux entrees et
y

= (y

1
y

2
. . . y

n
) et y

= (y

1
y

2
. . . y

n
) les sorties correspondantes. On
note
x = x

= (x

1
x

1
. . . x

n
x

n
)
y = y

= (y

1
y

1
. . . y

n
y

n
)
On traite les couples dentree et de sortie comme des variables aleatoires
que lon note X, Y, X, Y. Si le syst`eme cryptographique etait parfait la
8.3. CRYPTANALYSE DIFF

ERENTIELLE 75
probabilite pour quun y provienne dun x devrait etre de
1
2
n
o` u n est le
nombre de bits de X. La cryptanalyse dierentielle exploite le fait quil peut
arriver quun y particulier arrive avec une tr`es grande probabilite, p
D
>>
1
2
n
, dun x particulier. Le coupe (x, y) est appelee une dierentielle.
Il sagit dune attaque `a texte clair choisi. On suppose que le cryptanalyste
dispose dun grand nombre de quadruplets (x,x,y,y) o` u la valeur de x
est xee et que tous les textes sont chires avec la meme clef inconnue K.
Pour chacun des quadruplets on commence par dechirer y

et y

en utilisant
toutes les sous clefs candidates pour le dernier etage.
On commence par regarder les caracteristiques dierentielles des S-botes.
On remarque que dans ce cas y =
S
(x

)
S
(x

). On reprend lexemple
8.1.1 et on examine les caracteristiques dierentielles de ses S-botes
Exemple 8.3.1. On consid`ere la S-botes de lexemple 8.1.1. On xe un
x = (1011). On peut realiser ce x `a laide des couples (x

, x

) suivants

1
(1011) = (0000, 1011), (000, 1010), . . . , (1111, 0100)
Pour chaque couple (x

, x

) de
1
(1011) on calcule le y =
S
(x

)
S
(x

)
correspondant, il vient :
(8.7)
x

=
S
(x

) y

=
S
(x

) y = y

0000 1011 1110 1100 0010


0001 1010 0100 0110 0010
0010 1001 1101 1010 0111
0011 1000 0001 0011 0010
0100 1111 0010 0111 0101
0101 1110 1111 0000 1111
0110 1101 1011 1001 0010
0111 1100 1000 0101 1101
1000 0011 0011 0001 0010
1001 0010 1010 1101 0111
1010 0001 0110 0100 0010
1011 0000 1100 1110 0010
1100 0111 0101 1000 1101
1101 0110 1001 1011 0010
1110 0101 0000 1111 1111
1111 0100 0111 0010 0101
La derni`ere colonne du tableau donne la distribution de y
76 CHAPITRE 8. CODES
`
A CLEFS SECR
`
ETES
0000 0001 0010 0011 0100 0101 0110 0111
0 0 8 0 0 2 0 2
1000 1001 1010 1011 1100 1101 1110 1111
0 0 0 0 0 2 0 2
Comme on le voit la distribution est tr`es irreguli`ere. Comme on la fait
precedemment on peut dresser la table des y en fonction des x, cest `a
dire la table des
N
D
(x, y) = Card
_
(x

, x

) (x) :
S
(x

)
S
(x

) = (y)
_
ce qui est fait `a la gure 8.5 page 76
x
y 0 1 2 3 4 5 6 7 8 9 A B C D E F
0 16 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
1 0 0 0 2 0 0 0 2 0 2 4 0 4 2 0 0
2 0 0 0 2 0 6 2 2 0 2 0 0 0 0 2 0
3 0 0 2 0 2 0 0 0 0 4 2 0 2 0 0 4
4 0 0 0 2 0 0 6 0 0 2 0 4 2 0 0 0
5 0 4 0 0 0 2 2 0 0 0 4 0 2 0 0 2
6 0 0 0 4 0 4 0 0 0 0 0 0 2 2 2 2
7 0 0 2 2 2 0 2 0 0 2 2 0 0 0 0 4
8 0 0 0 0 0 0 2 2 0 0 0 4 0 4 2 2
9 0 2 0 0 2 0 0 4 2 0 2 2 2 0 0 0
A 2 2 2 0 0 0 0 0 6 0 0 2 0 0 4 0
B 0 0 8 0 0 2 0 2 0 0 0 0 0 2 0 2
C 0 2 0 0 2 2 2 0 0 0 0 2 0 6 0 0
D 0 4 0 0 0 0 0 4 2 0 2 0 2 0 2 0
E 0 0 2 4 2 0 0 0 6 0 0 0 0 0 2 0
F 0 2 0 0 6 0 0 0 0 4 0 2 0 0 2 0
Figure 8.5: table de distribution des dierences dune S-bote: valeurs de
N
D
(x, y)
On constate que la somme des lignes vaut toujours 16.
8.3. CRYPTANALYSE DIFF

ERENTIELLE 77
On constate que la distribution des dierences dune S-bote nest pas af-
fectee si on XORe lentree ou la sortie avec une clef K, en eet
x

= (x

K) (x

K), y

= (y

K) (y

K),
car K K = 0 puisque nous sommes en caracteristique 2.
On dent le rapport de propagation, R
p
(x, y), pour un couple die-
rentiel (x, y) de la mani`ere suivante:
R
p
(x, y) =
N
D
(x, y)
2
m
, m nombre de bits dentree
en fait R
p
(x, y) est une probabibilite conditionnelle
R
p
(x, y) = Pr
_
x

= x

= ybig
On utilise alors les S-botes
S
1,2
:x = B y = 2 avec probabilite
8
16
S
2,3
:x = 4 y = 6 avec probabilite
6
16
S
3,2
:x = 2 y = 5 avec probabilite
6
16
S
3,3
:x = 2 y = 5 avec probabilite
6
16
Toutes les autres S-botes auront des dierences dentree et de sortie egale
`a zero, voir la gure 8.6 page 78.
Comme le dierentiel dentree est X = (000, 1011, 0000, 0000) le die-
rentiel de sortie sera (avec les notations dej`a utilisee pour la cryptanalyse
lineaire) dapr`es le tableau (8.7)
V
1
= (0000, 0010, 0000, 0000)
Puis dapr`es les dierences demandees pour la S-bote S
2,3
on aura (car 4
en hexadecimal vaut 0100 en binaire)
U
2
= (0000, 0000, 0100, 0000)
Maintenant on lit dans le tableau (8.7) que
V
2
= (0000, 0000, 0110, 0000)
78 CHAPITRE 8. CODES
`
A CLEFS SECR
`
ETES
S
1,1
S
1,2
S
1,3
S
1,4
S
2,1
S
2,2
S
2,3
S
2,4
S
3,1
S
3,2 S
3,3
S
3,4
texte crypte
etage 2
etage 1
etage 3
etage 4
texte clair
sous clef K
3
sous clef K
4
sous clef K
5
K
5,5
. . . K
5,8
K
5,13
. . . K
5,16
sous clef K
2
K
4,8
K
4,6
K
4,14
K
4,16
sous clef K
1
K
3,6
K
3,14
K
2,6
K
1,5
K
1,7
K
1,8
U
4,5
. . . U
4,8
U
4,13
. . . U
4,16
S
4,4
S
4,3 S
4,2
S
341
X = (0000 1011 0000 0000)
Figure 8.6: Chemin dierentiel
Puis en suivant le chemin indique dans la gure 8.6 page 78, on voit que
U
3
= (0000, 0010, 0010, 0000)
8.3. CRYPTANALYSE DIFF

ERENTIELLE 79
et toujours dapr`es le tableau (8.7) on aura
V
3
= (0000, 0101, 0101, 0000)
et enn en regardant la gure 8.6 page 78
U
4
= (0000, 0110, 0000, 0110)
Ce U
4
a une probabilite de
8
16

6
16

_
6
16
_
2
=
27
1024
Pendant la crypanalyse on va disposer de beaucoup de texte avec un dieren-
tiel dentree de la forme X = (000, 1011, 0000, 0000). Avec une grande
probabilite,
27
1024
les dierents dierentiels intermediaires auront lieu, ce
seront les bonnes paires les autres seront les mauvaises paires. Nous
sommes maintenant en mesure dextraire des bits de la clef K
5
.
Rappelons tout dabord la remarque importante: les dierentielles
(U
i
, V
i
) ne sont pas aectes par la clef K
i
.
Pour chaque paire de texte chire on essaye les 256 valeurs des bits
K
5,5
, K
5,6
, K
5,7
, K
5,8
, K
5,13
, K
5,14
, K
5,14
, K
5,16
de la clef K
5
. On determinent ensuite les valeurs de
U
4,5
. . . U
4,8
et U
4,13
. . . U
4,16
qui ne dependent pas de la valeur de la clef K
4
. On determine aussi les
valeurs de U
4,5
. . . U
4,8
et U
4,13
. . . U
4,16
`a partir le paire de texte clair
correspondante qui ne depend pas des clefs intermediares K
1
, K
2
et K
3
. On
cree un compteur pour chacune des 256 sous-clefs possible et on lincremante
toutes les fois que les deux resultats concident. OIn sattend `a ce que la
bonne clef donne une probabilite proche de
27
1024
de reussites.du test.
Comme les dierences pour les S-botes S
4,1
et S
4,3
doivent etre zeros on
peut ltrer et ne pas tester pour les paires de messages qui ne respectent
pas cette condition.
Lattaque marche dans cet exemple avec 5000 paires de textes clairs et
cryptes correspondants. La determination du nombre de paires repose tou-
jours sur des hypoth`eses de variables aleatoires independantes qui ne sont
jamais veriees. Neanmoins il semble quun nombre de pair de messages de
lordre de
c
p
D
donne un bon ordre de grandeur.
80 CHAPITRE 8. CODES
`
A CLEFS SECR
`
ETES
8.4 Description de DES.
Cest un syst`eme cryptographique produit, base sur un schema de Feis-
tel, cf. sous-section 8.4.1. Il compose des operations de cryptage, autrement
dit il eectue un produit doperations de cryptage. Il repete 16 fois un al-
gorithme appele la fonction detage qui depend dun param`etre la clef
detage. La repetition de cet algorithme melange les bits du message en
clair en respectant les principes de C. Shannon: confusion et diusion.
La confusion gomme les relations entre le texte clair et le texte chire
pour eviter les attaques par analyse statistique. Autrement dit un
changement dun seul bit dans le texte clair doit aecter un grand
nombre de bits (idealement tous) du texte chire.
La diusion disperse la redondance du texte clair dans le texte chire,
par exemple deux lettres doublees ne doivent pas rester cote `a cote
apr`es cryptage.
8.4.1 Schema de Feistel.
Un bon algorithme `a cle secr`ete doit transformer le message clair en un
message crypte qui ressemble autant que possible `a une suite aleatoire, pour
limiter au minimum les risques dune attaque par analyse statistique du
texte chire, de ses redondances, etc...
Le probl`eme est que, si lon sait depuis longtemps construire des fonctions
qui ont lair aleatoire, on ne savait pas avant les travaux de Feistel construire
des bijections aleatoires. La solution apportee par Feistel est tr`es elegante :
on suppose par exemple quon a une fonction f presque aleatoire qui prend
comme argument un mot de n bits, et renvoie un mot de n bits (qui donne
limpression davoir ete choisi au hasard). Lalgorithme de chirement va
proceder en chirant des blocs de 2n bits, quon partage en 2, partie gauche
G, partie droite D. Limage du bloc (G, D) par le schema de Feistel est le
bloc (L, R), avec L = D, et R = Gf(D) o` u est loperation XOR.. Cette
transformation est cette fois bijective, car si on a un tel couple (L, R), on
retrouve (G, D) par D = L et G = R f(L).
Bien s ur, la partie droite na pas ete transformee (juste envoyee `a gauche).
Cest pourquoi on rep`ete le schema de Feistel un certain nombre de fois (on
parle de tour - le DES en comporte 16).
La plupart des algorithmes `a cle secr`ete de la n du XX`e s. etait des schemas
de Feistel. Lavenement de lAES, qui nen est plus un, marque la n de la
8.4. DESCRIPTION DE DES 81
f
XOR
L R
G
D
Figure 8.7: Schema de Feistel
predominance de tels algorithmes.
8.4.2 Quelques apects techniques de DES.
DES utilise une cle K de 56 bits utiles, en fait une cle de 64 bits dont les
bits 8, 16, 24, 32, 40, 48, 56 ne sont pas utilises pour la cle mais participent
`a un code correcteur qui permet de verier que la cle na pas ete alteree.
DES est un cryptosyst`eme par blocs qui travaille sur des blocs de 64 bits.
La cle de DES est trop courte pour les puissances de calcul actuelles. La
taille de la cle secr`ete 56 bits le rend aujourdhui vulnerable aux attaques
par force brute. En 1997 la cle a ete cassee en 3 semaines par une federation
de machines sur internet. Elle a ete cassee en 56 heures en 1998.
En 1999 la cle a ete cassee en moins dune journee, 22 heures, gr ace `a un
ordinateur dedie couple avec un reseau de plusieurs milliers dordinateurs.
An de prolonger la duree de vie de DES en attendant AES on a introduit
le triple DES. Il consiste `a appliquer successivement au message DES muni
de la clef K, `a le decoder avec DES muni de la clef K et de le recoder avec
DES muni de la clef K. Au total tout se passe comme si on avait code le
message avec une cle nettement plus longue.
Cest un syst`eme de chirement itere `a 16 etages
1. La cle K donne naissance `a 16 sous-cles, les clefs detage, de 48 bits
K
1
, K
2
,...,K
16
82 CHAPITRE 8. CODES
`
A CLEFS SECR
`
ETES
2. Etant donne un bloc de texte clair de 64 bits, X, on construit, gr ace
`a la fonction detage g
0
, un nouveau texte, X
0
, par permutation de
lordre des bits gr ace `a la permutation initiale IP.
g
0
(X) = X
0
= IP(X)
3. on separe les 32 bits de gauche, L
0
, et les 32 bits de droites, R
0
, de
X
0
, donc X
0
= L
0
R
0
4. On eectue 16 iterations (ou tours ou etages). On calcule la valeur de
la fonction detage g(X
i1
, K
i
) = L
i
R
i
, 1 i 16 suivant la r`egle
L
i
= R
i1
R
i
= L
i1
f(R
i1
, K
i
)
o` u est la somme bit `a bit sans retenue ou ou exclusif ou XOR
dans Z/2Z de L
i1
et f(R
i1
, K
i
) et o` u f est une fonction non lineaire
qui participe `a la diusion et qui est decrite par les S-botes
5. Pour nir on applique la permutation inverse de la permutation ini-
tiale, IP
1
, `a R
16
L
16
Pour une description plus precise voir [31] ou [11].
le schema 8.8 page 83 resume ce qui prec`ede.
8.5 Description dAES.
Le principe de lAES est tr`es proche du DES. Cest aussi un syst`eme cryp-
tographique produit constitue dune suite doperations de permutation et de
substitution. Contrairement `a AES ce nest pas un schema de Feistel mais
un reseau de substitution-permutation, cf. la section 8.1.
AES travaille sur des blocs de 128 bits avec des clefs de longueur 128, 192
ou 256 bits.
`
A lorigine AES pouvait travailler sur des blocs de longueur
N
b
32 bits o` u N
b
variait de 4 `a 8, nalement la taille de blocs dAES a ete
xee `a 128 bits et donc N
b
a ete xe `a 4.
Le passage `a une cle de 128 bits minimum rend impossible dans le futur
previsible les recherches exhaustives de clefs. Si on suppose que lon a un
algorithme capable de comparer en une seconde 2
56
clefs (i.e de casser DES
en une seconde) il lui faudra 149 mille milliards dannees pour casser AES.
8.5. DESCRIPTION DAES 83
permutation intiale
R0 (32 bits) L0 (32 bits)
L1 (32 bits) R1 (32 bits)
L2 (32 bits) R2 (32 bits)
f
f
message clair (64 bits)
permutation nale
message chire (64 bits)
R15 (32 bits)
f
R16 (32 bits)
L16 (32 bits)
L15 (32 bits)
K1 (48bits)
K2 (48bits)
K16 (48bits)
Figure 8.8: Architecture du DES
84 CHAPITRE 8. CODES
`
A CLEFS SECR
`
ETES
Exercices. 1
8.5.1. Justier cette armation.
AES resiste `a toutes les attaques connues (attention ce nest quun fait
dexperience pas une preuve).
Le diagramme 8.9 page 85 decrit un tour dAES le diagramme 8.10 page 86
decrit le codage en AES et le diagramme 8.11 page 87 decrit le decodage en
AES.
8.5.2 Quelques apects techniques dAES.
Pour toute la partie mathematique on pourra consulter dans les complements
mathematiques la section sur les extensions de corps et les anneaux de
polynomes sur un corps ni, section 13.6 page 183.
AES est un syst`eme de chirement itere constitue dun algorithme de
chirement sur des blocs de 128 bits, la fonction detage, repete N
e
fois,
avec N
e
allant de 10 `a 14, et dune clef secr`ete de 128, 192 ou 256 bits et
pour chaque etage dune clef detage de longueur xe, 128 bits.
Un algorithme de diversication de clef , ExpandKey[i], permet de
creer une clef pour chacun des etages, i, `a partir de la clef secr`ete K.
On notera N
e
le nombre detages. La fonction detage, g, est lensemble des
operations que lon fait subir au texte qui arrive `a letage i. Elle est la meme
pour tous les etages sauf le dernier.
La fonction g consiste en lapplication successive de 4 operations SubBytes,
ShiftRows, MixColumns, AddRoundKey. Pour le dernier etage on
applique seulement les operations SubBytes, ShiftRows et AddRound-
Key.
`
A partir de la clef secr`ete, K, on genere des sous clefs detage par lalgorithme
de diversication de la clef, ExpandKey[i]. On obtient les clefs detage:
K
1
,...,K
Ne
.
On note x un bloc de 128 bits du texte initial (texte en clair), w
i
le texte
utilise en entree `a letage i (cest donc un bloc de 128 bits) et y sera le bloc
correspondant crypte nal.
Tous les textes sont supposes transformes en une suite de zeros et de uns.
Si K et L sont deux telles suites on note
K L
8.5. DESCRIPTION DAES 85
K
clef
XOR
XOR
tour suivant
clef de tour

S
brouillage
des lignes
entree; bloc de 128 bits
colonnes
brouillage
sortie:
bloc de
128 bits
sortie de
lalgorithme
algorithme de diversication
K
Figure 8.9: Diagramme dun tour dAES
86 CHAPITRE 8. CODES
`
A CLEFS SECR
`
ETES
ROUND 1
ROUND 2
K
SUBBYTE
SHIFTROW
K10
ROUND 9
TEXTE CLAIR
TEXTE COD

E
SUBBYTE
SHIFTROW
MIXCOLUM
K1

ETAGE 1

ETAGE 2

ETAGE 9
DERNIER

ETAGE
Figure 8.10: Diagramme du codage en AES
8.5. DESCRIPTION DAES 87
K1
SHIFTROW
1
MIXCOLUM
1
SUBBYTE
1
TEXTE COD

E
K10
SHIFTROW
1
SHIFTROW
1
K9
PREMIER
SUBBYTE
1
ROUND 1
ROUND 2
ROUND 9
TEXTE CLAIR
Figure 8.11: Diagramme du decodage en AES
88 CHAPITRE 8. CODES
`
A CLEFS SECR
`
ETES
loperation XOR entre le suite K et la suite L.
Avec ces notations la description schematique dAES est la suivante. On
notera State lecriture du ux dentree-sortie sur lequel op`ere chaque algo-
rithme. Donc on prend le bloc de 128 bits sur lequel op`ere AES que lon
consid`ere comme une suite de 16 octets que lon range en une matrice 44.
Un octet etant confondu avec un element de F
256
de la mani`ere suivante:
F
256
est identie aux polynomes de F
2
[x] de degre 7 par lisomorphisme
F
256
F
2
[x]/(x
8
+x
4
+x
3
+x + 1)
Donc State est une matrice de M
44
(F
256
) construite suivant le schema 8.12
page 88.
a0 a2 a3 a4 a9 a10 a11 a12 a13 a14 a15 ........
a1
a2
a3
a12
representation matricielle
a6
a7 a11
a1
a0 a4 a8
a5 a9 a13
a14 a10
a15
Figure 8.12: La matrice State
Lalgorithme se deroule de la mani`ere suivante:
1. On initialise w
0
`a x et et on eectue loperation AddRoundKey
W
0
K
8.5. DESCRIPTION DAES 89
2. Pour chacun des 1 < i N
e
1 etages suivants on eectue sur w
i
les
operations suivantes
(a) loperation de substitution SubBytes
(b) sur le resultat de SubBytes une permutation notee ShiftRows
(permutation circulaire sur les elements des lignes de la matrice
des octets s
i,j
)
(c) sur le resultat de ShiftRows une operation notee MixColumns
(application lineaire sur lespace des matrices sur F
2
8)
(d) Sur le resultat de MixColumns loperation AddRoundKey[i]
avec la sous-cle de letage i
3. Pour le dernier etage N
e
on supprime loperation MiXColumns
On va decrire maintenant chacune des operations utilisees.
Loperation ExpandKey
Loperation ExpandKey depend de la taille de cle choisie, N
k
32, qui
peut etre egale `a 128, 160, 192, 224 ou 256 bits. On supposera dans la suite
que la longueur de la clef est de 192 bits, donc N
k
= 6.
Extension de la clef secr`ete K. On ecrit la clef K sous forme dune matrice
de N
k
colonnes de 4 bytes chacune (donc 4 lignes, lelement dune ligne etant
un mot de 8 bits), denotees k
0
,...,k
5
k
0
k
1
k
2
k
3
k
4
k
5
Ensuite cette matrice est etendue en une matrice de taille 4(N
e
+ 1) o` u N
e
est le nombre detages par lalgorithme suivant
Si i nest pas un multiple de N
k
(la longueur de la clef) alors la colonne
dindice i, k
i
, est la XORisation de la colonne dindice i N
k
, k
iN
k
,
et de la colonne dindice i1, k
i1
. Cest donc laddition bit `a bit sans
retenue de la colonne k
iN
k
et de la colonne k
i1
, k
i
= k
iN
k
k
i1
.
Si i est un multiple de N
k
on applique `a chacun des bytes de la colonne
k
i1
la permutation
S
decrite au paragraphe suivant suivie dune ro-
tation dans les bytes de la nouvelle colonne k
i1
, notee Rotword, et de
90 CHAPITRE 8. CODES
`
A CLEFS SECR
`
ETES
laddition dune constante detage denie en hexadecimal par [Fieldto
Binary(x
j1
) 000000] pour letage j (autrement dit on ajoute Fieldto
Binary(x
j1
) au premier byte de la clef detage apr`es application de
Rotword, cest `a dire `a a
1
avec les notations ci-dessous). On XOR le
resultat obtenu avec la colonne k
iN
k
.
On obtient ainsi
k
0
k
1
k
2
k
3
k
4
k
5
k
6
k
7
dots k
i4
. . . k
(i+1)41
. . .
cle detage 0 cle detage 1 . . . cle detage i . . .
La rotation Rotword est denie comme suit
Rotword :
_
_
_
_
a
0
a
1
a
2
a
3
_
_
_
_

_
_
_
_
a
1
a
2
a
3
a
0
_
_
_
_
Exercices. 1
8.5.2. Verier que les constantes detages denies ci-dessus ont pour valeur
(en hexadecimal)
etage 1 01000000 etage 2 02000000 etage 3 04000000
etage 4 08000000 etage 5 10000000 etage 6 20000000
etage 7 40000000 etage 8 80000000 etage 9 1B000000
etage 10 36000000
Loperation ExpandKey montre bien la realisation des concepts de diu-
sion et de confusion de Shannon. Prenons la clef de 128 bits
K = 00000000000000000000000000000000
en hexadecimal et voyons ce que sont les clefs derivees pour chacun des dix
etages, on trouve:
8.5. DESCRIPTION DAES 91
RoundKey[00] = 00000000000000000000000000000000
RoundKey[01] = 62636363626363636263636362636363
RoundKey[02] = 9B9898C9F9FBFBAA9B9898C9F9FBFBAA
RoundKey[03] = 90973450696CCFFAF2F457330B0FAC99
RoundKey[04] = EE06DA7B87A1581759ED42B27E91EE2B
RoundKey[05] = 7F2E2B88F8443E098DDA7CBBF34B9290
RoundKey[06] = EC614B851425758C99FF09376AB49BA7
RoundKey[07] = 217517873550620BACAF6B3CC61BF09B
RoundKey[08] = 0EF903333BA9613897060A04511DFA9F
RoundKey[09] = B1D4D8E28A7DB9DA1D7BB3DE4C664941
RoundKey[10] = B4EF5BCB3E92E21123E951CF6F8F188E
8.5.3. Verier que la diversication de la clef (en hexadecimal)
K = 00000000000000000000000000000000
est bien celle donnee par le tableau precedent.
8.5.4. Construire la diversication compl`ete de la cle (en hexadecimal)
2B7E151628AED2A6ABF7158809CF4F3C
Loperation SubBytes
Loperation SubBytes est la seule operation non lineaire. On suppose que
le message w
i
est un nombre de 128 bits=16 octets, (s
i,j
)
0i,j3
, ecrit en
base 2. On le reecrit sous la forme dune matrice S
i
, o` u les s
i,j
sont des
octets.
S
i
=
s
0,0
s
0,1
s
0,2
s
0,3
s
1,0
s
1,1
s
1,2
s
1,3
s
2,0
s
2,1
s
2,2
s
2,3
s
3,0
s
3,1
s
3,2
s
3,3
Loperation SubBytes consiste en une permutations
S
sur 0, 1
8
, agissant
independamment sur chacun des octets s
i,j
de letage i.
Pour decrire
S
on travaille dans un surcorps du corps `a 2 elements, F
2
,
le corps ni `a 256 elements, F
2
8, que lon identie avec les polynomes de
degre 8, munis de laddition et de la multiplication modulo le polynome
irreductible de F[x], x
8
+ x
4
+ x
3
+ x + 1, cf. paragraphe 13.6.2, page 187,
de rappel sur les anneaux de polynomes,
F
2
8 F
2
[x]/(x
8
+x
4
+x
3
+x + 1)
92 CHAPITRE 8. CODES
`
A CLEFS SECR
`
ETES
Lapplication BinarytoField associe `a loctet a
7
a
6
. . . a
1
a
0
lelement
BinarytoField(a
7
a
6
. . . a
1
a
0
) =
7

i=0
a
i
x
i
du corps F
2
8. Lapplication inverse est FieldtoBinary. On a dans le corps
F
2
8 loperation FieldInv qui `a un element z ,= 0 du corps associe z
1
et `a
z = 0 associe 0.
Exemple 8.5.1. Calcul dans F
2
8. Calculons FieldInv(00000011) on a:
FieldtoBinary(00000011)=x + 1
FieldInv(x + 1)=x
7
+x
6
+x
5
+x
4
+x
2
+x
car on a lidentite de Bezout
(x + 1)(x
7
+x
6
+x
5
+x
4
+x
2
+x) + (x
8
+x
4
+x
3
+x + 1) = 1
obtenue par lalgorithme dEuclide ou directement,
donc dans F
2
8 F[x]/(x
8
+x
4
+x
3
+x + 1)
(x + 1)
1
= (x
7
+x
6
+x
5
+x
4
+x
2
+x)
et donc
BinarytoField(x
7
+x
6
+x
5
+x
4
+x
2
+x)=(11110110)
Revenons `a la description de loperation SubBytes cest `a dire `a la de-
scription de la permutation
S
pour le mot de 8 bits (a
7
a
6
. . . a
1
a
0
) consiste
en
application de BinarytoField `a (a
7
a
6
. . . a
1
a
0
) qui donne a F
2
8
application FieldInv `a a qui donne a
1
si a ,= 0 ou 0 si a = 0
ajout de lelement c = (c
7
c
6
. . . c
1
c
0
) = BinarytoField(01100011) `a
a
1
pour obtenir b = (b
7
b
6
. . . b
1
b
0
)
application de FieldtoBinary `a b
c est une constante dAES.
Exercices. 1
8.5.5. Calculer SubBytes(00000011).
8.5. DESCRIPTION DAES 93
Loperation ShiftRows
Cest la permutation cyclique dans les lignes de la matrice S
i
decrite par le
diagramme ci-dessous
a b c d
e f g h
i j k l
m n o p

a b c d
f g h e
k l i j
p m n o
Loperation MixColumns
Cest une transformation lineaire dans les colonnes de la matrice State; la
colonne j est transformee de la mani`ere suivante (les calculs sont faits dans
F
2
8)
_

_
b
0
b
1
b
2
b
3
_

_
=
_

_
02 03 01 01
01 02 03 01
01 01 02 03
03 01 01 02
_

_
a
0
a
1
a
2
a
3
_

_
Polynomialement cette operation sinterpr`ete de la mani`ere suivante Cha-
cune des colonnes de la matrice State est consideree comme un polynome
de degre 3 `a coecients dans F
256
.
Loperation MixColumns consiste alors `a eectuer pour chaque colonne
une multiplication du polynome correspondant `a la colonne par un polynome
xe c(x) = 03x
3
+ x
2
+ x + 02 suivie dune reduction modulo le polynome
x
4
+1 de fa con `a obtenir un polyome de degre inferieur ou egal `a 3 de F
256
[X]
qui est interprete comme une colonne dune matrice de M
4
(F
256
).
Loperation AddRoundKey
AddRoundKey[i] est laddition de la clef obtenue `a letage i par lalgori-
thme de diversication des cles, ExpandKey[i], au texte obtenu `a lissue
de letape MixColumns.
On ecrit la clef ExpandKey[i], de 128 bits, sous la forme dune matrice de
4 4 bytes et on lajoute au resultat de letape precedente par un XOR
a
0,0
a
0,1
a
0,2
a
0,3
a
1,0
a
1,1
a
1,2
a
1,3
a
2,0
a
2,1
a
2,2
a
2,3
a
3,0
a
3,1
a
3,2
a
3,3

k
0,0
k
0,1
k
0,2
k
0,3
k
1,0
k
1,1
k
1,2
k
1,3
k
2,0
k
2,1
k
2,2
k
2,3
k
3,0
k
3,1
k
3,2
k
3,3
=
b
0,0
b
0,1
b
0,2
b
0,3
b
1,0
b
1,1
b
1,2
b
1,3
b
2,0
b
2,1
b
2,2
b
2,3
b
3,0
b
3,1
b
3,2
b
3,3
94 CHAPITRE 8. CODES
`
A CLEFS SECR
`
ETES
8.6 Infrastructure des syst`emes `a clef secr`ete.
Les infrastructures pour les syst`emes ` a clef secr`ete consistent en
toutes les dispositions techniques et lorganisation necessaires pour gerer un
syst`eme cryptographique `a clef secr`ete.
Autant il est facile pour un ordinateur de retenir une cle secr`ete de 128 bits,
autant cest dicile pour une personne. On utilise alors le syst`eme des mots
de passe. Mais pour ne pas aaiblir la securite du cryptosyst`eme le mot de
passe doit obeir `a certaines r`egles
Avoir une entropie, cf. le paragraphe 13.1.3 page 154, au moins egale
`a 128 bits. De mani`ere approximative ceci signie que le mot de passe
doit etre aussi dicile `a deviner quune suite aleatoire de 128 zeros et
uns. Pour avoir une entropie de 128 bits il sut de choisir 22 caract`eres
au hasard dans un alphabet de 64 lettres (minuscules, majuscules,
chires, point et espace).
Il doit resister aux attaques-dictionnaires.
Un mot de passe ne doit pas etre reutilise
On peut prendre les mesures suivantes pour ameliorer la securite dun syst`e-
me de mots de passe
On utilise le mot de passe pour calculer une cle de session qui change
`a chaque fois.
On rajoute des ingredients pour eviter les attaques dictionnaires (sel).
On it`ere la fonction de hachage, par exemple 1000 fois. Pour lutilisa-
teur le temps de calcul est `a peine aecte. Pour lattaquant qui proc`ede
par attaque-dictionnaire, cest prohibitif.
On utilise aussi un syst`eme de gestion des clefs (Symmetric Keys
Management) qui
1. emet les clefs
2. les authentie
3. les archive
4. les garde en dep ot
Un des syst`emes les plus utilises est Kerberos, cf. [34].
8.7. ATTAQUES CONTRE LES CODES SYM

ETRIQUES 95
8.6.1 Exemple: protocole dacc`es HTTP
On decrit de mani`ere succincte le syst`eme de controle dacc`es par mot de
passe utilise dans le protocole HTTP (norme RFC 2617). Ici le client est un
navigateur (browser) qui desire avoir acc`es `a un document protege appele
Uniform Resource Identier (URI en abrege) dun site Web. Il y a
deux protocoles dacc`es, nous ne decrivons que le protocole de base (basic
protocol en anglais). La faiblesse de ce protocole est que le password circule
en clair sur le reseau.
Dans le protocole de base le serveur garde en memoire des triplets (realm-
value, userid, password) o` u realm-value est une partie du serveur HTTP,
userid est un identiant de lutilisateur et o` u password est un mot de passe
attribue `a lutilisateur.
Lorsquun utilisateur envoie une requete pour acceder `a un URI, le serveur
envoie la demande suivante
WWW-Authenticate: basic realm=realm-value)
Lutilisateur doit repondre alors
Authentification basic: basic basic-credential)
o` u basic-credential est la chane de caract`ere
userid): password)
Si le triplet (realm-value, userid, password) est correct le serveur repond `a
la reque dURI. Sinon il envoie le message derreur
HTTP/1.0 401 Unauthorized
et recommence le processus de demande.
8.7 Attaques par force brute contre les codes symetriques
On peut se demander quelle est la securite dun cryptosyst`eme symetrique
(DES, AES ou LFSR) face `a une attaque par force brute (en anglais
brute force attack. on decrit trois types dattaques par force brute
1. Les attaques par recherche exhaustive
2. Les attaques dictionnaires
3. Les attaques repertoires
96 CHAPITRE 8. CODES
`
A CLEFS SECR
`
ETES
8.7.1 Attaques par recherche exhaustive.
Cette attaque consiste `a essayer systematiquement toutes les clefs possibles
jusqu`a ce que lon tombe sur la bonne clef. On peut simplier le mod`ele de
cette attaque en supposant que lon a un oracle (un dispositif) qui repond
par oui ou par non `a la question:
cette clef est-elle correcte?
On peut denir la complexite par le nombre dappels `a loracle qui seront
necessaire pour obtenir la bonne clef. On aura une notion de complexite
dans le pire des cas (worst case complexity en anglais), une notion de
complexite en moyenne (average complexity en anglais), etc...
Dans le cas dun espace de clefs contenant N clefs qui sont generees uniformement on
peut montrer que la meilleure attaque a une complexite dans le pire des cas de N appels
`a loracle et une complexite en moyenne de
N
2
appels `a loracle.
En eet la meilleure attaque consiste `a ordonner sans repetition les clefs de lespace des
clefs suivant un ordre aleatoire et `a interroger loracle. Si on se place dans le pire des cas
la bonne clef est la derni`ere et il a donc fallu interroger loracle N fois.
Si la bonne clef est la i-i`eme dans la liste il a fallu interroger loracle i fois. Commme
la liste a ete faite au hasard la probabilite que la bonne clef soit la i-i`eme est
1
N
. Par
consequent la complexite en moyenne, cest `a dire le nombre dappels quil a fallu faire `a
loracle en moyenne, est
N
X
i=1
i
N
=
N + 1
2
8.7.2 Attaques dictionnaires.
Cette attaque est une attaque `a texte clair choisi qui cherche `a retrouver la
clef secr`ete..
On choisit un (ou plusieurs) texte clair x et on calcule les message codes,
E
K
i
(x), correspondant pour M clefs K
i
choisies au hasard dans lespace des
clefs si leur distribution est equirepartie et plus generalement choisies en
accord avec leur loi de distribution. On range le s couples (E
K
i
(x), K
i
) dans
un dictionnaire. Les E
K
i
(x) jouent le r ole dindex de rangement, de mot `a
denir, et les K
i
sont les denitions correspondantes
Remarque 8.7.1. Il se peut quil y ait des clefs K
i
et K
j
telles que E
K
i
(x) =
E
K
j
(x).
Si maintenant on re coit un message E
K
(x) on compare le resultat avec le
dictionnaire ce qui donne donne une indication sur la clef K.
8.7. ATTAQUES CONTRE LES CODES SYM

ETRIQUES 97
8.7.3 Attaques repertoires.
Cette attaque cherche `a retrouver le message clair correspondant au message
code sans se soucier de la clef secr`ete. Cest une attaque `a texte chire connu.
On choisit un (ou plusieurs) texte clair x et on calcule pour M clefs K
i
de
lespace des clefs et on calcule les couples (E
K
i
(x), x). On range le tout
dans un repertoire. Les E
K
i
(x) jouent le r ole dindex de rangement dans le
repertoire et x la rubrique correspondant.
Si on re coit un message code y on le compare avec les entrees du repertoire
cest `a dire les E
K
i
(x) et si on a pour un i particulier E
K
i
(x) = y alors x
peut-etre un candidat pour le texte clair correspondant
Chapitre 9
Codes `a clefs publiques.
Die et Hellman ont degage vers 1976 la notion de code ` a clef publique
ou code asymetrique fonde sur la notion de fonction `a sens unique.
Les codes asymetriques les plus utilises:
RSA base sur la diculte calculatoire de la factorisation des grands
entiers.
El Gamal base sur la diculte calculatoire de calculer le logarithme
discret dans un corps ni.
Menezes-Vanstonne bases sur le logarithme associe au groupe des
points dune courbe elliptique sur un corps ni. Cest une modication
dautres cryptosyst`emes, comme El Gamal. Sa surete peut etre mieux
analysee. La longueur de sa cle est bien inferieure `a celle des syst`emes
RSA et El Gamal pour une surete equivalente. Ils orent des fonc-
tionnalites supplementaires comme la possibilite de monter un crypto-
syst`eme basee sur lidentite.
Il existe dautres codes asymetriques peu utilises en pratique comme
McEliece base sur la theorie algebrique des codes correcteurs der
-reurs. Il repose sur la diculte calculatoire du decodage dun code
lineaire (probl`eme NP complet). Considere comme s ur il necessite des
clefs extr`emement longues 10
19
bits.
Chor-Rivest base sur une instance du probl`eme du sac-`a-dos.
98
9.1. PRINCIPE DES CODES
`
A CLEF PUBLIQUE 99
9.1 Principe des codes `a clef publique.
9.1.1 Fonctions `a sens unique.
On cherche une fonction f entre des ensembles T et c telle que
le calcul de f(x) pour x T se fait en temps polynomial en fonction
de la taille des donnees, cf la sous-section 13.2.3.
le calcul de f
(1)
(y) pour y c ne se fait pas en temps polynomial
en fonction de la taille des donnees. Le plus souvent la fonction f
poss`ede une porte derobee (trapdoor) qui permet de calculer facile-
ment f
1
(y) lorsquon a une information supplementaire comme la clef
secr`ete.
Autrement dit on cherche des fonction f : T c appartenant `a la classe
des probl`emes P (calculables en temps polynomial en fonction de la taille
des donnees) et telle que la fonction reciproque (ou limage reciproque si ne
suppose pas f bijective) f
(1)
appartienne `a la classe des probl`emes NP,
(non calculables en temps polynomial en fonction de la taille des donnees,
mais veriables en temps polynomial).
La mise au point de telles fonctions a revolutionne la cryptographie et elargi
son champ dapplication.
9.2 Le cryptosyst`eme Merkle-Hellman.
Ce cryptosyst`eme qui fut historiquement un des premiers proposes (il a ete
publie en 1978) repose sur le probl`eme du sac-` a-dos. Generiquement il a
une securite prouvee, car le probl`eme du sac-` a-dos est generiquement dans
la classe NP. Malheureusement comme la montre Shamir sa securite ne
repose pas sur un probl`eme de sac-` a-dos generique mais sur une instance
particuli`ere de ce probl`eme qui elle peut ne pas etre dans la classe NP.
9.2.1 Le probl`eme du sac-`a-dos.
Le probl`eme du sac-` a-dos senonce de la mani`ere suivante
Soit a un ensemble dentiers a
1
, a
2
, . . . , a
n
; s.
Existe-t-il un sous-ensemble de a
1
, a
2
, . . . , a
n
dont la somme soit s
100 CHAPITRE 9. CODES
`
A CLEFS PUBLIQUES
Intuitivement on peut considerer que les a
i
representent la taille de pa-
quets que lon veut mettre dans un sac-` a-dos de taille s, ou encore quils
representent des billets et des pi`eces monnaies destinees `a payer un objet
dont le prix est s.
Linteret de ce probl`eme du sac-` a-dos pour la cryptographie tient au theo-
r`eme suivant
Theor`eme 9.2.1 (Karp 1972). Le probl`eme du calcul de la solution, sup-
posee exister, du sac-` a-dos est un probl`eme generiquement NP-complet
Pour la denition de NP-complet voir la sous-section 13.2.2.
De mani`ere un peu approximative ce theor`eme signie que generiquement
trouver une solution, que lon sait exister, au probl`eme du sac-` a-dos est
dicile cest `a dire que la calcul de la solution necessite un temps exponentiel
en fonction de la taille des donnees. Le mot generique signie quil existe
au moins un ensemble a ayant une solution tel que le calcul de la solution
ne se fasse pas en temps polynomial en fonction de la taille des donnees.
Le probl`eme est de cacher une clef secr`ete, une porte derobee, ou trapdoor
qui permette au destinataire du message de le decoder.
On choisit un entier M on dira que a = a
1
, a
2
, . . . , a
n
; s est un probl`eme
de sac-` a-dos modulo M sil existe
a
k
1
, . . . , a
km
a
1
, a
2
, . . . , a
n

tel que
a
k
1
+ +a
km
s mod M
9.2.2 Description du cryptosyst`eme Merkle-Hellman.
Lidee principale de Merkle et Hellman consiste `a choisir un sac-` a-dos par-
ticulier dont la solution est triviale et `a cacher cette forme particuli`ere du
sac-` a-dos par une transformation secr`ete connue du seul destinataire du
message.
La forme retenue par Merkle et Hellman est le sac-` a-dos super-croissant
(super-increasing knapsack).
Une suite dentier b
1
, b
2
, . . . , b
n
, b
n+1
est dite super-croissante si lon a
b
i
>
i1

j=1
b
j
; pour 1 i n + 1
9.2. LE CRYPTOSYST
`
EME MERKLE-HELLMAN 101
On remarque que si la suite b
1
, b
2
, . . . , b
n
, b
n+1
est super-croissante et si
M = b
n+1
alors tout probl`eme de sac-` a-dos b
1
, b
2
, . . . , b
n
; s modulo M est
equivalent au probl`eme de sac-` a-dos b
1
, b
2
, . . . , b
n
; s sur les entiers naturels.
Ce dernier est un probl`eme facile. On remarque que b
n
est dans le sous-
ensemble de la solution si et seulement si b
n
s et on peut alors ramener
le probl`eme initial au probl`eme de sac-` a-dos b
1
, b
2
, . . . , b
n1
; s

avec s

=
_

_
s b
n
ou
s
.
La transformation secr`ete destinee `a cacher le fait que lon a un sac-` a-dos
super-croissant est simplement la multiplication par un nombre secret M.
Le crypto-syst`eme de Merkle et Hellman est donc le suivant
1. Param`etre public n.
2. fabrication de la clef: choisir un suite super croissante
b
1
, b
2
, . . . , b
n
, b
n+1
= M
choisir un nombre W Z/MZ et une permutation de 1, . . . , n.
Calculer a
i
= Wb
(i)
(mod M) pour 1 i n.
3. Clef Publique: K
p
= (a
1
, a
2
, . . . , a
n
)
4. Cle secr`ete: K
s
= (b
1
, b
2
, . . . , b
n
, M, W, )
5. Message: une suite de zeros et de uns de longueur n, m = m
1
m
2
. . . m
n
.
6. Codage: c =
n

i=1
m
i
a
i
7. Decodage: calculer CW
1
(mod M), resoudre le probl`eme de sac-
`a-dos super-croissant x
1
b
1
+ + x
n
b
n
= cW
1
(mod M) et alors
m
i
= x
(i)
.
Le crypto-syst`eme Merkle-Hellman revient `a trouver un vecteur dans un
reseau. Un reseau (lattice) est lensembles des combinaisons `a coecients
entiers relatifs de vecteurs de R
n
. Trouver un petit vecteur au sens de la
norme euclidienne est aussi un probl`eme dicile. mais il y a des cas o` u
ce probl`eme devient facile. Plus precisement lalgorithme LLL peut etre
utilise. En particulier il peut etre utilise pour casser des crypto-syst`emes
comme celui de Merkle-Hellman.
102 CHAPITRE 9. CODES
`
A CLEFS PUBLIQUES
9.3 Le syst`eme RSA.
Le syst`eme RSA est nomme dapr`es le nom de ses inventeurs: Rivest,
Shamir, Adleman.
Il est base sur la fonction `a sens unique produit de deux entiers
f : N N N
(n, m) f(n, m) = n m
sa fonction reciproque etant la decomposition dun nombre entier en un pro-
duit de deux facteurs non-triviaux (cest `a dire dierents de 1 et du nombre
lui meme) et donc nalement sur la decomposition en facteurs premiers dun
entier, cf. la section arithmetique dans les complements de mathematiques,
section 13.3 page 162.
Le calcul du produit de deux nombres entiers est une operation facile,
rapide, calculatoirement facile (cest `a dire faisable en temps polynomial
en fonction de la taille des donnees) alors que la decomposition en facteurs
premiers nest pas facile, est lente, calculatoirement dicile (cest `a
dire quelle nest pas faisable en temps polynomial en fonction de la taille des
donnees). En eet on montre, cf. la sous-section 13.2.3, que si les nombres
entiers n et m secrivent avec k max[ln
2
n], [ln
2
m] chires en base 2
alors le temps necessaire pour calculer le produit mn est proportionnel `a
k
2
.
9.3.1 Description du cryptosyst`eme RSA.
On a un ensemble (A
i
)
iI
de correspondants (personnes physiques ou ordi-
nateurs). Le principe du cryptosyst`eme RSA est le suivant (pour toutes les
denitions arithmetiques voir le paragraphe 13.3)
Chacun des correspondants A
i
choisit deux nombres premiers p
i
et q
i
distincts. On note n
i
= p
i
q
i
, le module du cryptosyst`eme de A
i
et
(n
i
) = (p
i
1)(q
i
1), lindicatrice dEuler de n
i
.
A
i
choisit ensuite un nombre e
i
lexposant de la cle publique pre-
mier avec (n
i
) (ce que lon note e
i
(n
i
) = 1). Dapr`es le pe-
tit theor`eme de Fermat, theor`eme 13.3.18 page 173, on peut imposer
1 e
i
(n
i
) 1, ce que lon fait toujours en pratique.
Puis A
i
calcule linverse d
i
de e
i
modulo (n
i
), d
i
est appele lexposant
de la cle secr`ete. Cest `a dire, dapr`es la denition de linverse
9.3. LE SYST
`
EME RSA 103
modulo n
i
, quon cherche d
i
N tel quil existe k
i
N avec
d
i
e
i
= 1 +k
i
(n
i
) et 1 d
i
(n
i
) 1
Le calcul se fait par lalgorithme dEuclide etendu, cf. la sous-sous-
section 13.3.3.
Chacun des correspondants A
j
publie dans un annuaire public les nom-
bres n
j
et e
j
qui forment sa cle publique de chirement et garde
secret p
j
, q
j
et d
j
qui forment sa cle secr`ete de dechiffrement.
En pratique on choisit les nombres premiers p
i
et q
i
de taille comparable de
telle sorte que leur produit n
i
= p
i
q
i
soit un nombre dau moins 300 chires
en base 10 et plut ot 500 pour une protection longue.
Remarque 9.3.1. Bien distinguer entre e ne divise pas n et e est premier
avec n, (e, n sont des entiers positifs).
e ne divise pas n signie quil nexiste pas dentier f tel que n = ef.
e est premier avec n signie quil nexiste aucun diviseur commun entre e et
n, cest quil nexiste aucun entier d tel que d divise e et d divise n.
Exemple 9.3.1. 9 ne divise pas 15 mais 9 nest pas premier `a 15 car 3
divise `a la fois 9 et 15.
9.3.2 Protocole denvoi dun message en RSA.
Alice veut envoyer un message /`a Bob. La clef publique dAlice (resp Bob)
est (n
a
, e
a
), (resp. (n
b
, e
b
)), sa clef secr`ete est (p
a
, q
a
, d
a
) (resp. (p
b
, q
b
, d
b
)).
Elle suit le protocole suivant
1. Alice commence par transformer le message en une suite de chires,
par exemple en rempla cant les lettres et les dierents symboles utilises
par des chires (de 0 `a 255 dans le cas du code ASCII).
2. Alice regarde dans lannuaire public la cle de chirement n
b
, e
b
de Bob.
Elle decoupe le message / en blocs M de taille approximativement
n
b
.
3. Elle calcule
f
b
(M) = M

M
e
b
mod n
b
et envoie M

= f
b
(M) `a Bob.
104 CHAPITRE 9. CODES
`
A CLEFS PUBLIQUES
4. Pour recuperer le texte en clair Bob calcule
f
1
b
(M

) = (M

)
d
b
= f
b
(M)
d
b
M
e
b
d
b
= M
1+k
b
(n
b
)
mod n
b
Dapr`es le theor`eme dEuler (cf. theor`eme 13.3.23 page 176) on a
M
(n
b
)
1 mod n
b
et par consequent
f
1
b
(M

) M mod n
b
Si la taille de M est adaptee `a celle de n
b
, il ny a pas dambiguite, et Bob
recup`ere donc bien le message dAlice.
Exercices. 1
9.3.1. Bob choisit comme nombre premier p = 17 et q = 19, comme exposant
e = 5. donner sa clef publique.
9.3.2. Bob choisit comme nombre premier p = 17 et q = 19 et comme
exposant e = 5. Donner sa cle secr`ete de dechiffrement d.
9.3.3. Bob choisit comme nombre premier p = 17 et q = 19 et comme
exposant e = 5. Alice et lui decident dun protocole RSA dans lequel les
messages sont des nombres en base 10 que lon code par bloc de 2 chires
en base 10. Alice veut envoyer le message 462739.
1.

Ecrire le message code quelle envoie `a Bob.
2. Decoder le message qua re cu Bob et verier que cest bien celui qua
envoye Alice.
9.3.4 Protocole de signature RSA.
Le cryptosyst`eme RSA permet aussi facilement de realiser lauthentication
de lexpediteur (en admettant que sa clef privee nest utilisee que par lui).
1. Alice commence par decouper le message / en blocs M de taille bien
choisie par rapport `a n
a
et n
b
. Elle crypte chaque bloc du message
avec sa cle secr`ete, d
a
, elle obtient `a partir du texte en clair M un
premier texte crypte, M

= f
1
a
(M) M
da
mod p
a
q
a
9.3. LE SYST
`
EME RSA 105
2. Avec la cle publique de Bob, elle crypte M

et obtient un deuxi`eme
texte crypte, M

= f
b
(M

) = f
b
(f
1
a
(M))
qui constitue sa signature du message M.
3. Elle crypte alors le message M avec la cle publique de Bob en suivant
le protocole precedent et obtient le texte crypte du message f
b
(M)
f
b
(M) = M
e
b
mod n
b
4. Elle envoie `a Bob le couple
(f
b
(M), M

)
qui constitue le message chire et signe dAlice `a Bob.
Pour decoder et verier la signature qui authentie lexpediteur du message,
dAlice, Bob eectue les operations suivantes
1. Il calcule dune part,
f
1
b
(M

) M

mod n
b
puis
f
a
(M

) mod n
a
M mod n
a
.
(Si le choix de la taille des blocs M est bien choisie par rapport `a n
a
et n
b
, il ny a pas dambiguite au decodage)
2. Il calcule dautre part, en decodant comme au paragraphe 9.3.2,
f
1
b
f
b
(M) M mod n
b
3. Il compare les deux resulats obtenus. Sil constate que M = M, cest
`a dire que les deux resultats sont les memes, il est s ur alors que le
message vient dAlice car seule Alice connait
f
1
a
d
a
cest `a dire sa cle secr`ete. De plus il est s ur que le message na pas ete
altere.
106 CHAPITRE 9. CODES
`
A CLEFS PUBLIQUES
Securite de la signature RSA
Le protocole de signature RSA decrit ci-dessus soure de quelques failles de
securite dues aux proprietes de RSA.
Soit K
p
= (n, e) et K
s
= (n, d) des clefs publiques et privees utilisees pour
une signature. Le message code signe est simplement un couple (
e
, ) o` u
est la signature du message.
On peut donc choisir un au hasard et construire un message m =
e
(mod n). La paire (m, ) est un message signe parfaitement valable simple-
ment on na pas le contr ole du message crypte m.
Si on a deux messages signes (m
1
,
1
) et (m
2
,
2
) on cree un autre message
signe parfaitement valide qui est
_
(m
1
m
2
(mod n)), (
1

2
(mod n))
_
.
On peut remedier `a ces failles de securite en utilisant des fonctions de
hachage.
Exercices. 1
9.3.4. Bob choisit comme nombre premier p
b
= 17 et q
b
= 19 et comme
exposant e
b
= 5. Alice choisit comme nombres premier p
a
= 11 q
a
= 21
et comme exposant e
a
= 7. Calculer les exposants secrets dAlice et Bob.
Alice et Bob utilisent un protocole RSA en base 10 par bloc de 2 chires.
Alice envoie et signe le message suivant 462739. Donner le message re cu par
Bob.
9.3.5. Bob et Charles utilisent un cryptosyst`eme RSA avec le meme module
n = pq mais avec des exposants dierents, lexposant b pour Bob et c pour
Charles que lon suppose premier entre eux. Alice leur envoie le meme
message clair x quelle crypte avec leur clef publique. Elle envoie donc
y
b
x
b
(mod n) `a Bob et y
c
x
c
(mod n) `a Charles.
`
Eve intercepte les deux messages cryptes y
b
et y
c
. Montrer qu
`
Eve peut
retrouver le message clair x sans connatre les clefs secr`etes de Bob et
Charles.
Calculer x avec n = 18721, b = 43, c = 7717, y
b
= 12677, y
c
= 14702.
9.3.6. Montrer que le cryptosyst`eme RSA ne resiste pas aux attaques `a texte
chire choisi. En particulier etant donne un texte chire y, montrer comment
choisir un deuxi`eme texte chire y ,= y tel que la connaissance du texte clair
x correspondant permette de calculer le texte clair x correspondant `a y
(indication: utiliser le fait que si e
K
est la fonction de chirement on a
e
K
(x)e
K
( x) mod n = e
K
(x x mod n)
9.3. LE SYST
`
EME RSA 107
9.3.7. On suppose que Bob, Bernard et Bertrand utilisent un cryptosyst`eme
RSA avec des modules dierents n
1
,n
2
, n
3
et le meme exposant b = 3. On
suppose que les n
i
sont deux `a deux premiers entre eux.
Alice chire un message x avec les clefs publiques de Bob, Bernard et
Bertrand et le leur envoie. Montrer qu

Eve qui intercepte les trois messages


peut recuperer x sans factoriser aucun des n
i
.
9.3.6 Exemple academique de codes RSA.
Alice publie sa cle publique (n
A
, e
A
) = (65, 5), sa clef secr`ete est d
A
.
Bob publie sa cle publique (n
B
, e
B
) = (77, 7), sa clef secr`ete est d
B
.
Pour trouver les clefs secr`etes on decompose en un produit de facteurs pre-
miers n
A
et n
B
n
A
= 13 5 et n
B
= 7 11
On calcule ensuite les indicatrices dEuler correspondantes
(n
A
) = 12 4 = 48 et (n
B
) = 6 10 = 60
En utilisant lalgorithme de PGCD decrit au paragraphe 13.3.3 page 167 (ou
directement) on calcule d
A
5 29 = 145 = 1 + 3 48 =d
A
= 29
respectivement d
B
7 43 = 301 = 5 60 + 1 =d
B
= 43
Alice veut transmettre le message 3 `a Bob. Elle calcule donc
3
7
31 mod 77 = 7 11
et elle envoit 31 `a Bob. Bob decode en calculant
31
43
31
1+2+8+32
31 37 58 37 31 3 mod 77
(remarquer la mani`ere de calculer une puissance).
Si Alice veut signer le message elle nenvoie pas seulement 31, mais elle
calcule dabord
f
1
a
(3) = (3
29
mod 65) = 48
108 CHAPITRE 9. CODES
`
A CLEFS PUBLIQUES
puis elle calcule
f
b
_
f
1
a
(3)
_
= f
b
(3
29
mod 65) = (48
7
mod 77) = 27
puis elle envoie `a Bob le couple
(31, 27)
constitue de la signature et du message.
Pour decoder Bob calcule
f
a
_
f
1
b
(27)
_
= f
a
(27
43
mod 77) = (48
5
mod 65) = 3 mod 65
et
31
43
3 mod 77
et il constate que les deux resultats coincident. Lexpediteur du message est
bien Alice.
Remarque 9.3.2. Pour signer le message Alice aurait pu aussi bien mener
les calculs dans lordre inverse, cest `a dire calculer dabord avec la cle
publique de Bob

= f
e
b
b
(M) mod n
b
puis crypter avec sa cle secr`ete d
a
le resultat

M

et obtienir un deuxi`eme
texte crypte,

M

= f
1
a
(

) = f
1
a
(f
b
((M)) (

)
da
mod n
a
qui constitue sa signature du message M.
Elle crypte alors le message M avec la cle publique de Bob en suivant le
protocole precedent et obtient le texte crypte du message f
b
(M)
f
b
(M) = M
e
b
mod n
b
Elle envoie `a Bob le couple
(f
b
(M),

M

)
Bob decode en calculant dune part
f
a
(

)

M

mod n
a
f
1
b
(f
a
((

)) = f
1
b
(f
a
(f
1
a
(f
b
(M)))) M mod n
b
Les deux protocoles ont leurs avantages et inconvenients. On pref`ere en
general le premier protocole car il suit de plus pr`es la mani`ere traditionnelle
de signer une lettre: on signe dabord avant de la mettre dans lenveloppe.
Le second protocole consiste `a mettre la lettre dans lenveloppe et `a signer
lenveloppe.
9.3. LE SYST
`
EME RSA 109
9.3.7 Exemple de code RSA.
On choisit un alphabet `a 40 lettres
A= 0, B= 1, C= 2, D= 3, E= 4, F= 5, . . . ,
. . . , X= 23, Y= 24, Z= 25, =26, .= 27, ?= 28,
euros= 29, 0= 30, 1= 31, . . . , 8= 38, 9= 39,
On choisit comme cle publique le couple
n = 2047, e = 179
on a
40
2
2047 40
3
on choisit donc de decouper les messages en clair en blocs de deux lettres et
les messages chires en blocs de trois lettres.
On ecrit chaque bloc de deux symboles clairs X
1
X
2
sous la forme 40x
1
+x
2
o` u x
i
est le nombre entre 1 et 39 correspondant `a X
i
.
On ecrit chaque bloc de trois symboles codes Y
1
Y
2
Y
3
sous la forme 40
2
y
1
+
40y
2
+y
3
o` u y
i
est le nombre entre 0 et 39 correspondant `a Y
i
.
Le message clair est
ENVOYEZ euros2500.
Pour le coder on consid`ere les blocs
EN = 4 40 + 13 = 173, VO = 21 40 + 14 = 854,
YE = 24 40 + 4 = 964, Z = 1026,
euros2 = 1192, 50 = 1430,
0. = 1227
Codage du message
EN (173)
179
mod 2047 = 854 = 0 40
2
+ 21 40 + 14 = AVO
VO (854)
179
mod 2047 = 1315 = 0 40
2
+ 32 40 + 35 = A25
YE (964)
179
mod 2047 = 452 = 0 40
2
+ 11 40 + 12 = ALM
Z (1026)
179
mod 2047 = 1295 = 0 40
2
+ 32 40 + 15 = A2P
euros2 (1192)
179
mod 2047 = 511 = 0 40
2
+ 12 40 + 31 = AM1
110 CHAPITRE 9. CODES
`
A CLEFS PUBLIQUES
50 (1430)
179
mod 2047 = 1996 = 1 40
2
+ 9 40 + 36 = BJ6
0. (1227)
179
mod 2047 = 88 = 0 40
2
+ 2 40 + 8 = ACI
Le message code est donc
AVOA25ALMA2PAM1BJ6ACI
Pour decoder on factorise
2047 = 23 89 =(2047) = 22 88 = 1936
et on deduit par lalgorithme dEuclide que
d = 411.
Remarque 9.3.3. En fait les param`etres de ce code sont mal choisis car
22 divise 88 et donc on peut prendre pour d nimporte quel inverse de 179
modulo 88 comme par exemple 59. On constate que 411 = 59 + 4 88
9.3.8 Securite du syst`eme RSA.
La securite de RSA repose sur les faits suivants:
on ne sait pas decoder sans connatre lexposant d de la cle secr`ete
trouver d equivaut `a factoriser n = pq
on ne connait pas dalgorithme polynomial en temps en fonction de la
taille des donnees (cest `a dire de la longueur des nombres n et e) pour
calculer d cest `a dire pour factoriser n, les meilleurs sont en
O
_
e
C

ln
2
nln
2
ln
2
n
_
operations.
on dit que lalgorithme est sous-exponentiel
Ce sont des faits dexperience pas des theor`emes.
Depuis sa creation le syst`eme RSA a resiste `a toutes les attaques de mani`ere
satisfaisante si lon choisit bien p, q et e, mais il faut constamment aug-
menter la taille de pq. On est partie de 512 bits, et meme 389 bits pour
les cartes `a puces, `a 2048 bits. Cette augmentation de taille est neces-
sitee par laugmentation de la puissance des ordinateurs et par les progr`es
mathematiques des algorithmes de factorisations des entiers.
Pour construire et utiliser un code RSA on a besoin de savoir faire rapide-
ment (cest `a dire en temps polynomial au plus) les operations suivantes:
9.3. LE SYST
`
EME RSA 111
construire des grands nombres premiers
calculer des PGCD
faire de larithmetique modulaire (addition, multiplication, exponen-
tiation)
Pour evaluer et tester la securite du code RSA, il faut en particulier
evaluer la rapidite des algorithmes de factorisations de grands nombres
entiers
Demontrer que la clef secr`ete de dechirement d ne peut pas etre
obtenue sans factoriser n = pq et plus generalement quelle ne peut
pas etre calculee en temps polynomial en fonction de n.
montrer que lon ne peut pas decoder un message sans la clef secr`ete
9.3.9 Attaques du syst`eme RSA.
Bien que le syst`eme RSA soit considere comme s ur il y a de nombreuses
mani`eres de mal lutiliser et douvrir des failles de securite.
Attaques sur les petits exposants I
On envoie le meme message x ` a plusieurs destinataires qui ont pour clef
publique (e, n
1
), (e, n
2
),...,(e, n
k
) avec le meme exposant e. On envoie donc
y
i
= x
e
(mod n
i
) pour 1 i k.
Si on suppose que le nombre de destinataires, k, est superieur `a lexposant e
il devient facile `a un opposant qui intercepte lensemble des messages codes
(y
i
)
1ik
de les decrypter.
Supposons pour simplier que les (n
i
)
1ik
soient deux `a deux premiers
entre eux. Soit n =

1ik
n
i
. Le theor`eme des restes chinois (theor`eme
13.3.19 page 174, montre quil existe y avec y < n tel que
y y
i
mod n
i
, 1 i k
Nous avons donc
y x
e
mod n
i
, 1 i k
112 CHAPITRE 9. CODES
`
A CLEFS PUBLIQUES
et par consequent puisque les (n
i
)
1ik
sont deux `a deux premiers entre eux
on a
y x
e
mod n
Comme lentier naturel x
e
est plus petit que n car x est plus petit que chacun
des n
i
et que n est le produit de plus de e entiers n
i
(ici lhypoth`ese que
lexposant est petit, i.e. inferieur `a k) est cruciale. Comme y < n on en
deduit que lon a en fait
y = x
e
Comme e est public il ne reste plus quextraire la racine e-i`eme de y pour
recuperer x.
Attaques sur les petits exposants II
Si lexposant public e est petit il existe un algorithme polynomial en fonction
de la taille des donnees qui permet de trouver la racine dune equation
polynomiale modulo n de degre e si au moins lune des racines est de taille
inferieure `a n
1
e
.
On peut utiliser cet algorithme pour decrypter ecacement un message cryp-
te en RSA avec un exposant public e = 3 si lon connait les deux tiers des
bits en clair du message. De meme si e = 3 et si lon dispose de deux
messages dont les textes en clair ne di`erent que sur une fenetre connue de
longueur
1
9
de celle du texte clair on peut decrypter les deux messages.
On a des resultats analogues si lexposant secret d est petit <
4

n.
9.4 Le cryptosyst`eme El Gamal.
Le cryptosyst`eme El Gamal est basee sur la fonction `a sens unique loga-
rithme discret. On consid`ere un groupe cyclique ni, G, de cardinal n
engendre par un generateur, g. Donc
G =
_
g
i

0 i n 1
On suppose que le calcul de g
i
est facile, rapide calculatoirement facile
(cest `a dire faisable en temps polynomial en fonction de la taille des donnees)
mais que le calcul de i connaissant g
i
nest pas facile, est lent, calcu-
latoirement dicile (cest `a dire: nest pas faisable en temps polynomial
en fonction de la taille des donnees). Si a = g
i
, i est appele le logarithme
discret de a.
9.4. LE CRYPTOSYST
`
EME EL GAMAL 113
Autrement dit G est isomorphe au sous groupe additif de Z/nZ et la securite
du cryptosyst`eme El-Gamal repose sur la diculte `a calculer explicitement
cet isomorphisme en un temps raisonnable.
On utilise les deux realisations suivantes de G. On consid`ere un nombre
premier p et on choisit
G =
_
Z/pZ
_

p
cest `a dire que le G est le groupe des elements inversible pour la mul-
tiplication de Z/pZ les entiers modulo p, pour la denition voir dans les
complements mathematiques, le paragraphe sur les congruences 13.3.4 page
170.
Dapr`es un theor`eme de Gauss, theor`eme 13.3.17 page 173, le groupe multi-
plicatif de Z/pZ est cyclique et le calcul de g
i
mod p est rapide alors quon
ne connait pas dalgorithme en temps polynomial pour calculer i connais-
sant a = g
i
pour de bons choix de p. Plus generalement on peut considerer
le groupe multiplicatif des elements inversibles dun corps ni `a q = p
s
elements, F
q
.
Une autre realisation est de prendre comme groupe G le groupe des points
dune courbe elliptique sur un corps ni, E(F
q
) qui donne lieu aux cryp-
tosyst`emes elliptiques, cf le paragraphe 9.5 page 118. Ils se developpent
actuellement car ils poss`edent des avantages en terme de taille de cle et de
securite prouvee.
9.4.1 Description du cryptosyst`eme El Gamal.
On consid`ere le cryptosyst`eme suivant: Soit p un nombre premier tel que le
probl`eme du logarithme discret dans Z/pZ soit dicile.
Soit g une racine primitive modulo p, cf. le theor`eme 13.3.17 page 173, cest
`a dire que g est un generateur du groupe cyclique (Z/pZ)

.
Soit T =
_
Z/pZ
_

, les messages en clair, et soit ( =


_
Z/pZ
_

_
Z/pZ
_

les
messages cryptes et enn soit lespace des clefs
/
b
=
_
(p, g, , ); g

mod p
_
o` u
_
(p, g, ) est la clef publique
est la clef secr`ete
Alice veut transmettre un message, /, `a Bob
1. Bob choisit un grand nombre premier p
b
, un generateur g
b
du groupe
cyclique multiplicatif
_
Z/p
b
Z
_
et un entier
b
inferieurs `a p
b
1
114 CHAPITRE 9. CODES
`
A CLEFS PUBLIQUES
2. Bob calcule
b
= g

b
b
; alors le triplet (p
b
, g
b
,
b
) constitue sa clef
publique,
b
est sa clef secr`ete.
3. Alice decoupe le message / en blocs M de taille inferieure `a p
b
, elle
choisit un entier k
a
(inferieur `a p
b
1) pour chacun des blocs M et
calcule
y
1
g
ka
b
(mod p
b
) et y
2
=
ka
b
M
La paire e
K
b
(M, k
a
) = (y
1
, y
2
) est le message code quAlice envoie `a Bob.
Pour decoder
1. Bob calcule
M y
2
(y

b
1
)
1
mod p
b
Comme y

b
1
= g
ka
b
b
(mod p) on a:
d
K
(y
1
, y
2
) = y
2
(y

b
1
)
1

ka
b
M(g
ka
b
b
)
1

b
ka
b
Mg

b
ka
b
M mod p
et comme M est inferieur `a p
b
il ny a pas dambiguite dans le decodage.
Pour une bonne securite, Alice doit changer souvent k
a
.
9.4.2 Signature El Gamal.
On reprend les notations precedentes. Soit M un bloc dun message /
quAlice veut transmettre en le signant `a Bob.
1. Alice choisit elle-aussi un grand nombre premier p
a
tel que le probl`eme
du logarithme discret dans
_
Z/p
a
Z
_

soit dicile.
2. Elle choisit aussi un generateur g
a
de
_
Z/p
a
Z
_

et un entier 0
a

p
a
2 et elle calcule
a
= g
a
a
.
Elle dispose ainsi elle aussi dune clef publique (p
a
, g
a
,
a
) et dune clef privee
(secr`ete)
a
. Pour signer le message M, Alice realise les operations suivantes
1. elle choisit k

a
(Z/p
a
Z)

secret et premier `a p
a
1.
2. elle calcule

a
g
k

a
a
mod p
a

a
(M
a

a
)k

a
1
mod (p
a
1)
9.4. LE CRYPTOSYST
`
EME EL GAMAL 115
3. la signature du bloc M est alors sign
Ka
(M, k

a
) avec
sign
Ka
(M, k

a
) = (
a
,
a
)
4. Puis elle envoie le couple
_
e
K
b
(M, k
a
), sign
Ka
(M, k

a
)
_
cest `a dire le quadruplet
_
(y
1
, y
2
), (
a
,
a
)
_
.
On constate que

a
a

a
a
g
M
a
[p
a
]
Remarque 9.4.1. La condition k

a
premier `a p
a
1 est necessaire car Alice
utilise pour calculer
a
la quantite k

1
a
(mod p
a
1).
Cette procedure realise bien une signature du bloc M. Pour verier la
signature et decoder Bob suit le protocole suivant:
1. Bob re coit le couple constitue par le message crypte par Alice de la
signature de ce message cest `a dire le quadruplet
_
(y
1
, y
2
), (
a
,
a
)
_
.
2. Il decode le message `a laide de sa cle secr`ete et recup`ere M.
3. Il calcule

a
a

a
a
mod p
a
et il verie que

a
a

a
a
g
M
a
Sil en est ainsi il est s ur que lexpediteur du message est bien Alice.
On constate que cette procedure realise bien une signature du message M
car pour fabriquer le couple (
a
,
a
) Alice a utilise sa clef secr`ete et si lon
remplace dans la formule donnant
a
la cle secr`ete
a
par un autre nombre
compris entre 0 et p
a
1 on naura plus legalite

a
a

a
a
g
M
a
mod p
a
116 CHAPITRE 9. CODES
`
A CLEFS PUBLIQUES
9.4.3 Securite du syst`eme EL Gamal.
La securite du cryptosyst`eme EL Gamal repose sur les faits suivants:
on ne sait pas decoder sans connatre la cle secr`ete
trouver equivaut `a trouver le logarithme discret de = g

dans
(Z/pZ)

on ne connait pas dalgorithme polynomial en temps en fonction de


la taille des donnees (cest `a dire de la longueur du nombre p) pour
calculer . Les meilleurs sont en
O
_
e
C

ln
2
(p) ln
2
ln
2
(p)
_
operations.
Ce sont des faits dexperience pas des theor`emes.
9.4.4 Exemple academique de code El Gamal.
Alice et Bob veulent correspondre en employant le syst`eme El-Gamal. Alice
choisit comme param`etres
p
a
= 263, g
a
= 5,
a
= 47
Bob choisit comme param`etres
p
b
= 257, g
b
= 5,
b
= 67
On verie facilement que p
a
et p
b
sont des nombres premiers, que g
a
et g
b
sont respectivement des generateurs des groupes cycliques Z/p
a
Z et Z/p
b
Z.
Il sut pour cela de verier (par exemple `a laide dune table ou dun syst`eme
de calcul faisant de larithmetique modulaire) que
_
g
e
a
, 1 mod p
a
1 < e < p
a
1 divisant p
a
1
g
e
b
, 1 mod p
b
1 < e < p
b
1 divisant p
b
1
En eet dapr`es le corollaire 13.3.24 le plus petit entier non nul e tel que
g
e
a
1 (mod p
a
) est un diviseur de p
a
1. Ici p
a
1 = 262 = 2 131, donc
il sut de verier que g
131
a
, 1 (mod 263) et p
b
1 = 256 = 2
8
, donc il
sut de verier que g
128
b
, 1 (mod 257).
Alice calcule
a
= p
a
a
(mod p
a
) = 40 et sa clef publique est
K
a
= (p
a
= 263, g
a
= 5,
a
= 40)
9.4. LE CRYPTOSYST
`
EME EL GAMAL 117
sa cle secr`ete est
a
= 47.
Bob calcule
b
= p

b
b
(mod p
b
) = 201 et sa clef publique est
K
b
= (p
b
= 257, g
b
= 5,
b
= 201)
sa cle secr`ete est
b
= 67.
On suppose quAlice et Bob senvoient des nombres de deux chires en base
10. Alice envoie `a Bob le message M quelle code en (y
1
, y
2
) = (76, 251) `a
laide la cle publique de Bob et dun k
a
quelle garde secret.
Bob decode le message en eectuant loperation
y
2
(y

b
1
)
1
(mod 257) = 251 76
67
(mod 257)
= 251 76
25667
(mod 257)
= 251 76
189
(mod 257) = 251 155 (mod 257)
= (6) 155 (mod 257) = 98
.Le message en clair dAlice est M = 98.
On peut retrouver le param`etre k
a
`a laide dune table des puissances de g
b
(mod 257). On sait que
y
1
= g
ka
b
(mod 257) = 76, y
2
=
ka
b
M (mod 257) = 251
On trouve `a laide dune table ou dun logiciel de calcul darithmetique
modulaire k
a
= 139.
Si Alice veut envoyer le message M = 87 `a Bob avec les memes param`etres,
y compris k
a
, elle eectue le calcul
z
1
= y
1
= g
ka
b
(mod 257) = 76
z
2
=
ka
b
87 (mod 257) = 201
139
87 (mod 257) = 173
Pour un bon choix de p le syst`eme El-Gamal resiste bien aux attaques.
Comme le syst`eme RSA il est assez lent et necessite des clefs longues 1024
`a 2048 bits actuellement). Il se transpose sans diculte `a nimporte quel
groupe cyclique o` u le probl`eme du logarithme discret est dicile, en parti-
culier pour le groupe des points dune courbe elliptique sur un corps ni.
Avec ce groupe malgre les dicultes algorithmique on a de bons codes avec
des clefs courtes (128 `a 256 bits actuellement) dont la securite peut etre au
moins partiellement prouvee.
118 CHAPITRE 9. CODES
`
A CLEFS PUBLIQUES
9.5 Le cryptosyst`eme elliptique Menezes-Vanstone.
Ce syst`eme base sur le groupe des points dune courbe elliptique, cf. la
section 13.7 page 197, denie sur un corps ni F
q
est une variante du cryp-
tosyst`eme El Gamal.
Soit E une courbe elliptique denie sur le corps ni F
p
Z/pZ (p > 3
premier) telle que E contienne un sous-groupe cyclique H, engendre par un
point B de E, dans lequel le probl`eme du logarithme discret soit dicile.
Soit
P = F

p
F

p
, les textes en clair
C = E F

p
F

p
, les textes chires
Posons, [H[ la cardinal de H, et posons
K =
_
(E, , a, ) : = a
_
lespace des clefs o` u E. Les valeurs et sont publiques et a Z/[H[Z
est secret et choisi au hasard.
Pour K = (E, , a, ), et pour un nombre aleatoire secret k Z/[H[Z, et
pour x = (x
1
, x
2
) P = F

p
F

p
, on chire le message x `a laide de la clef
K et du nombre aleatoire k en posant
E
K
(x, k) = (y
0
, y
1
, y
2
),
o` u
y
0
= k , (c
1
, c
2
) = k ,
y
1
= c
1
x
1
(mod p), y
2
= c
2
x
2
(mod p)
Pour dechirer un message chire
y = (y
0
, y
1
, y
2
)
on eectue les operations
D
K
(y) =
_
y
1
c
1
1
(mod p), y
2
c
1
2
(mod p)
_
,
o` u a y
0
= (c
1
, c
2
).
9.6. INFRASTRUCTURE DES SYST
`
EMES
`
A CLEF PUBLIQUE 119
9.6 Infrastructure des syst`emes `a clef publique.
Les infrastructures des syst`emes ` a clef publique ou PKI (Public
Key Infrastructure) consistent en toutes les dispositions techniques et
organisationnelles necessaires pour gerer un syst`eme cryptographique `a clef
publique.
On a un ensemble dinterlocuteurs en reseau qui se sont mis daccord sur
un cryptosyst`eme `a clef publique (par exemple RSA), sur une fonction de
hachage (cf. le chapitre 10 page 127) et sur un protocole de signature. On
suppose que chacun dentre eux dispose dune paire (K
e
, K
d
) (cle publique,
cle secr`ete), (cle de chirement, cle de dechirement) et que chacun dentre
eux est capable de chirer, dechirer et signer.
Du fait que les cles publiques ne sont pas condentielles, il nest pas neces-
saire de les crypter pour les transmettre. Mais il est tr`es important et meme
vital pour la securite des transmissions de sassurer de lauthenticite des cles
ainsi transmises.
En eet si Alice desire transmettre sa clef publique `a Bob, nimporte quel
opposant, Martin par exemple, peut intercepter le message la contenant.
Martin peut ensuite envoyer un message `a Bob en se faisant passer pour
Alice et contenant sa propre cle publique et donnant comme adresse de
retour sa propre adresse. Ainsi il est capable de lire les messages cryptes
que Bob envoie `a Alice avec la soit-disant cle publique dAlice que Bob croit
posseder. Une fois quil les a decryptes et lu il peut les envoyer `a Alice dont
il poss`ede la cle publique en les modiant sil lestime necessaire.
Il faut donc dune certaine mani`ere faire un lien entre chacun des participants
au reseau et sa cle publique. Pour cela on utilise les certicats.
Un certicat consiste en une clef publique et une identite digitale (par ex-
emple une suite de symboles contenant le nom du proprietaire de la clef,
de la meme mani`ere quon met une etiquette sur une cle ordinaire), le tout
etant cachete `a laide de la signature digitale dune personne ou dune or-
ganisation en laquelle on a conance et appelee un Tiers de Conance
(Trusted Third Party ou TTP) ou encore Certication Authority ou
CA.
Pratiquement on peut par exemple concatener, mettre bout ` a bout, la clef
publique, le nom de son possesseur et signer le message obtenu `a laide de
la clef privee du Tiers de Conance (il faut que personne ne puisse usurper
lidentite du Tiers de Conance).
120 CHAPITRE 9. CODES
`
A CLEFS PUBLIQUES
Il existe plusieurs mod`eles de reseau avec Tiers de Conance, avec deux
mod`eles extr`emes, le mod`ele hierarchique qui repose sur des TTP distincts
des utilisateurs et le mod`ele distribue o` u chaque utilisateur est son propre
CA.
Un syst`eme tr`es employe de syst`eme hierarchique de Tiers de Conance est
le mod`ele X.509, [34].
Un autre syst`eme en voie de developpement est le chirement basee sur
lidentite, ID-PKC, Identity Based Public Key Cryptography dont
lidee est due `a I. Shamir et dont la premi`ere realisation pratique est due `a
Boneh et Franklin, il est decrit au paragraphe 9.6.1 page 122. Leur solution
est basee sur laccouplement de Weil sur les courbes elliptiques, cf. section
13.7.5 page 205.
Il y a aussi des syst`emes non hierarchiques de PKI fonde sur des chanes de
certicats et une distribution de clefs decentralisees.
Les fonctions principales dun PKI sont


Emission de paires de clefs (cle publique, cle privee)
Attribution didentiants uniques aux participants au reseau
Conservation des clefs
1. Depot de clefs, utile quand il sagit de garantir la continuite dun
service en cas de changement de titulaire
2. Archivage des clefs, utile pour pouvoir relire de vieux messages
3. Sauvegarde des clefs, utile en cas de perte de clef
4. Recuperation de clef perdues
ces fonctions ne sont pas tr`es distinctes


Emission et publication des certicats
Revocation des certicats, maintien et emission des listes de certicats
revoques, CRL.
xer leur duree de validite
Archiver les certicats expires (important pour les probl`emes de non-
repudiation)
Donner une datation securisee
9.6. INFRASTRUCTURE DES SYST
`
EMES
`
A CLEF PUBLIQUE 121
Un certain nombre de r`egles doivent etre respectees
a) [Axiome 1]: les cles secr`etes doivent letre et le rester. En pratique
personne, en dehors des proprietaires legitimes, ne doit y avoir acc`es;
la securite netant pas basee sur lignorance des cryptosyst`emes mais
sur celle des cles, il est plus facile de changer une clef compromise
quun algorithme.
b) [Axiome 2]: les cles secr`etes doivent exister seulement
1. en clair, `a linterieur dun module resistant (TRSM, Tamper
Resistant Security Module)
2. chirees ou au moins en morceaux `a lexterieur.
c) [Axiome 3]: limiter le deploiement des clefs: les cles doivent se trouver
en un nombre minimal dendroits pour limiter les expositions et les
risques.
d) [Axiome 4]: separer les clefs: les cles doivent etre crees et utilisees pour
un seul objectif, le ranement dependant de la politique de securite.
e) [Axiome 5]: synchroniser les cles: il faut verier que toute cle a ete
employee sans risque pour la securite des autres cles.
f) [Axiome 6]: journal des evenements: tous les evenements de gestion
de toutes les clefs sont transcrits dans un journal, lui meme gere de
mani`ere s ure.
Exemple 9.6.1 (Certicat PGP). Le certicat PGP, utilise en PKI dis-
tribuee, contient les informations suivantes
numero de version PGP utilisee
la clef publique du porteur du certicat ainsi que lalgorithme employe
(RSA, DH ou DSA)
la signature digitale du proprietaire du certicat
les informations sur lidentite du porteur du certicat
la periode de validite du certicat
lalgorithme symetrique prefere du proprietaire du certicat qui sera
utilise pour chirer linformation
122 CHAPITRE 9. CODES
`
A CLEFS PUBLIQUES
Exemple 9.6.2 (Certicat X.509). Le certicat X.509, utilise en PKI
hierarchique, contient les informations suivantes
Version: numero de version X.509 utilisee
Serial number: numero de serie du certicat (propre `a chaque CA)
Signature Algo ID:identiant du type de signature utilisee
Issuer Name: Distinguished Name (DN) du CA qui emet le certicat.
Validity period: la periode de validite du certicat
Subject Name: Distinguished Name du detenteur de la clef publique.
Subject public key info: informations sur la clef publique de ce certi-
cat.
Issuer unique ID: identiant unique de lemetteur de ce certicat.
Subject unique ID: identiant unique du detenteur de la clef publique.
Extensions: Extensions generiques optionnelles.
Signature: signature numerique du CA sur les champs precedents.
9.6.1 Cryptographie basee sur lidentite.
Dans ce schema la clef publique dun utilisateur, Alice, est indeniablement
lie `a son identite (user ID), ce peut-etre une concatenation de son adresse,
son numero de securite, sociale, son numero de telephone...
Ensuite un algorithme public permet de calculer la clef publique dAlice,
donc plus besoin de consulter des annuaires et pas de risque dusurpation
didentite `a ce stade.
Un tiers de conance appele KGC, Key Generator Center poss`ede un
secret, la cle matre ou Master Key, qui lui permet de calculer la cle
privee dAlice apr`es verication de son identite.
La s urete du syst`eme repose sur la diculte de calculer la cle matre `a partir
de couples (cle privee, cle publique).
Le point faible du syst`eme est que tout repose sur la conance envers le KGC
qui peut contrefaire toute signature et dispose de toutes les clefs privees.
Pour remedier `a cette faiblesse on peut envisager davoir plusieur KGC dont
9.6. INFRASTRUCTURE DES SYST
`
EMES
`
A CLEF PUBLIQUE 123
chacun ne fabrique quun morceau de la cle privee qui est nalement as-
semblee par lutilisateur, Alice, qui sera donc la seule `a la connatre.
Un schema de cryptographie basee sur lidentite (ou Identity Based En-
cryption en anglais, en abrege IBE propose par Boneh et Franklin [6] est
le suivant:
Le KGC dispose de deux groupes (G
1
, +) et (G2, ) cycliques
dordre n et dun couplage symetrique e, cest `a dire dune ap-
plication
e : G
1
G
1
G
2
telle que si on note 0 lelement neutre de G
1
et 1 celui de G
2
on
ait
1. e(S
1
+S
2
, T) = e(S
1
, T) e(S
2
, T), pour tous S
1
, S
2
, T G
1
2. e(S, T
1
+T
2
) = e(S, T
1
) e(S, T
2
), pour tous S, T
1
, T
2
G
1
3. e(S, T) = 1, pour tout S G
1
, resp pour tout T G
1
implique T = 0, resp. S = 0.
4. e(S, T) soit calculable rapidement.
Il dispose dun generateur P de G
1
.
Il choisit aleatoirement s
_
Z/qZ
_

, la clef matre, et calcule


P
pub
= sP = P +P + +P
. .
s fois
.
Il choisit deux fonctions de hachage cryptographiques
H
1
: 0, 1

1
H
2
: G
2
0, 1
n
o` u 0, 1

designe les suites nies composees delements de 0, 1,


autrement dit une suite arbitraire nie de 0 et de 1 et G

1
designe
les suites nies composees delements de G
1
, autrement dit une
suite arbitraire nie de S G
1
et o` u n est un entier xe.
On note M = 0, 1
n
lespace des messages clairs et C = G

1
0, 1
n
lespace des messages chires
La clef secr`ete de lutilisateur est faite de la mani`ere suivante.
Pour une chane de caract`ere ID representant la clef publique
dAlice
124 CHAPITRE 9. CODES
`
A CLEFS PUBLIQUES
1. le KGC calcule Q
ID
= H
1
(ID) G

1
2. il gen`ere la clef secr`ete dAlice: d
ID
= sQ
ID
Pour chirer un message M M avec la clef publique ID dAlice, Bob
calcule
1. Q
ID
= H
1
(ID)
2. Il choisit aleatoirement r
_
Z/qZ
_

3. C =
_
rP, M H
2
_
g
r
ID
_
G

1
0, 1
n
o` u est loperation XOR
habituelle sur les suites de 0 et de 1 et o` u g
ID
= e(Q
ID
, P
pub
) G

2
.
Pour dechirer le message chire C = (U, V ) G

1
0, 1
n
Alice eectue
les operations suivantes
1. Elle calcule M = V H
2
_
e(d
ID
, U)
_
On a bien
e(d
ID
, U) = e(sQ
ID
, U = e(sQ
ID
, rP) = e(Q
iD
, P)
sr
= eQ
ID
, sP)
r
= e(Q
ID
, P
PUB
= g
r
ID
et donc H
2
_
e(d
ID
, U)
_
= H
2
_
g
r
ID
_
et par consequent, comme est involutif,
Alice a bien recupere le message en clair envoye par Bob.
En pratique on choisit une courbe elliptique, E, sur un corps ni, F
q
. Comme
groupe G
1
on prend un sous-groupe, E[n] = G
1
, cyclique de E(F
q
) dordre
eleve engendre par un point P E(F
q
) comme groupe G
2
le groupe
n
= G
2
.
On prend comme couplage e une modication de laccouplement de Weil.
9.6.2 Le protocole SS.
SSL(Secure Socket Layer) est un protocole de securisation des echanges,
developpe par Netscape. Il a ete con cu pour assurer la securite des transac-
tions sur Internet (notamment entre un client et un serveur), et il est integre
depuis 1994 dans les navigateurs.
Il existe plusieurs versions: la version 2.0 developpee par Netscape; la version
3.0 qui est actuellement la plus repandue, et la version 3.1 baptisee TLS
(transport Layer Security, RFC 2246) et standardisee par lIETF (Internet
Engineering Task Force).
SSL fonctionne de mani`ere independante par rapport aux applications qui
lutilisent; il est obligatoirement au dessus de la couche TCP et certains le
consid`erent comme un protocole de niveau 5 (couche session).
SSL permet dassurer les services de securite suivants:
9.6. INFRASTRUCTURE DES SYST
`
EMES
`
A CLEF PUBLIQUE 125
condentialite : elle est obtenue par lutilisation dalgorithmes `a chire-
ment symetrique de blocs comme DES, FORTEZZA, IDEA, 3DES ou
RC2, ou par des algorithmes `a chirement symetrique de ots comme
RC4 (la longueur des cles peut etre limitee suivant les legislations
propres `a lexportation, et le padding correspondant sapplique aux
algorithmes par blocs).
integrite : lintegrite des donnees est assuree par lutilisation de MACs
(Message Authentication Code) bases sur les fonctions de hachage
MD5 (16 octets) ou SHA-1 (20 octets).
authentication : SSL permet lauthentication des 2 entites (authen-
tication client facultative) base sur des certicats X.509, et lauthen-
tication des donnees gr ace aux MACs.
126 CHAPITRE 9. CODES
`
A CLEFS PUBLIQUES
Syst`eme hierarchique de Tiers de Conance
Syst`eme non-hierarchique de Tiers de Conance
Chapitre 10
Fonctions de Hachage.
Les procedures de signature precedentes ont un co ut prohibitif pour signer
des longs messages car la signature est aussi longue que le message. On
double donc la longueur du texte `a crypter.
Pour reduire la longueur de la signature on peut utiliser une fonction de
hachage cryptographique (hash function en anglais), h, ou fonction de
condensation. Cest une fonction `a sens unique qui sera publique dans les
applications.
Les fonctions de hachage ont dautres applications cryptographiques que la
signature, cf le chapitre 11 page 134 sur les protocoles cryptographiques.
Une fonction de hachage est une fonction rapide `a calculer mais dont limage
reciproque est dans la classe des probl`emes calculatoirement diciles (la
classe NP). Elle transforme un message de longueur arbitraire en une em-
preinte numerique ou code dauthentication du message de taille
xee, 160 bits en general actuellement. Pour des raisons de securite on tend
`a augmenter la taille de lempreinte.
Le schema de calcul dune signature avec une fonction de hachage est le
suivant:
message x longueur arbitraire

empreinte numerique z = h(x) 160 bits

signature y = sign
K
(z) 320 bits
127
128 CHAPITRE 10. FONCTIONS DE HACHAGE
En realite une fonctions de hachage prend un message x de taille inferieure
`a N xe quelle transforme en une empreinte de taille 160 bits (ou 256 ou
384 ou 512).
Il existe des techniques classiques, cf. [31], pour etendre les fonctions de
hachage de domaine de depart ni (fonction de compression) N en des
fonctions de hachage dont le domaine de depart est constitue de messages
de longueur arbitraire. Elles sont appelees alors fonctions de hachage
iterees. La principe pour literation est le suivant. On suppose que la
fonction h peut recevoir deux entrees
une empreinte h
i1
un bloc M de taille N
et donner en sortie une empreinte h
i
.
M
h
i1

f h
i
On peut supposer que cette extension des fonctions de hachage est dej`a faite.
LorsquAlice souhaite envoyer un message signe, x, elle calcule dabord lem-
preinte numerique, z = h(x), elle signe avec y = sign
K
(z) et transmet le
couple (x, y) par le canal de communication.
Tout le monde peut verier la signature en calculant lempreinte z = h(x)
et en utilisant le procede de verication de la signature ver
K
(z, y).
10.1 Construction des fonctions de hachage.
La fonction de hachage doit etre construite avec soin pour quelle naaiblisse
pas le protocole de signature. Un opposant comme Martin ne doit pas
pouvoir forger la signature dAlice.
Comme une fonction de hachage nest evidemment pas injective, il existe
des couples de messages x

et x tels que h(x

) = h(x). Lattaque la plus


evidente consiste pour Martin `a partir dun message signe (x, y) authentique
(y = sign
K
(x)) precedemment calcule par Alice `a calculer z = h(x) et `a
chercher x

,= x tel que h(x) = h(x

). Si Martin y parvient (x

, y) est un
message valide.
Donnons tout dabord quelques denitions de qualites que lon peut exiger
dune fonction de hachage.
10.1. CONSTRUCTION DES FONCTIONS DE HACHAGE 129
Denition 10.1.1. Une fonction de hachage h est ` a collisions faibles dif-
ciles si etant donne un message x, il est calculatoirement dicile dobtenir
un message x

,= x tel que h(x) = h(x

).
Denition 10.1.2. Une fonction de hachage h est ` a collisions fortes
diciles sil est calculatoirement dicile dobtenir deux messages differents
x et x

tels que h(x) = h(x

)
Denition 10.1.3. Une fonction de hachage est une fonction de hachage
`a sens unique si etant donnee une empreinte numerique z, il est calcula-
toirement dicile de trouver un message x tels h(x) = z
Si une fonction de hachage est `a collisions fortes diciles elle est bien s ur `a
collisions faibles diciles, mais aussi `a sens unique.
10.1.1 Attaques des anniversaires.
Une fonction de hachage doit aussi resister aux attaques des anniver-
saires.
Une methode simple pour obtenir des collisions, i.e. des messages x et x

tels que h(x) = h(x

) est lattaque des anniversaires decrite ci-dessous.


On a une fonction de hachage h : X Z o` u [X[ = m < + et [Z[ = n et
m 2n. Dans ces conditions il y a au moins n collisions.
On va trouver la borne inferieure de la probabilite de trouver une collision
en tirant k messages aleatoires distincts. Cette borne depend de k et n mais
pas de m. On fait lhypoth`ese simplicatrice que [h
1
(z)[ m/n.
Il est alors facile de calculer la probabilite pour que k elements z
i
Z soient
tous distincts si lon tire au hasard k elements x
i
X.
On ordonne les z
i
en z
1
,..., z
k
. Le premier tirage z
1
est arbitraire; la proba-
bilite pour que z
2
,= z
1
est 1
1
n
; la probabilite pour que z
3
soit distinct de
z
1
et z
2
est 1
2
n
, etc...
La probabilite de non-collision est donc
_
1
1
n
__
1
2
n
_
. . .
_
1
k 1
n
_
=
k1

i=1
_
1
i
n
_
avec un peu danalyse elementaire on voit facilement en utilisant lapproxi-
mation
e
x
1 x si x petit
130 CHAPITRE 10. FONCTIONS DE HACHAGE
que:
k1

i=1
_
1
i
n
_

k1

i=1
e

i
n
= e

k(k1)
2n
La probabilite dune collision est donc 1 e

k(k1)
2n
. Si lon veut que cette
probabilite soit inferieure `a alors il sut de prendre
k
_
2nlog
1
1
Par exemple dans une assemblee de 23 personnes la probabilite davoir deux
dates danniversaire egales est superieure `a 1/2.
Une empreinte de 40 bits est vulnerable `a une attaque des anniversaires avec
probabilite superieure `a 1/2 en utilisant seulement 2
20
messages aleatoires.
Pour une empreinte de 128 bits il faut 2
64
messages aleatoires. Le choix
dune empreinte de 160 bits donne une bonne resistance aux attaques an-
niversaires. Mais laugmentation de la puissance de calcul disponible pour
un attaquant pousse `a augmenter la taille des empreintes, cest pourquoi
AES prevoit des empreintes de 256 `a 512 bits.
10.1.2 Exemple academique de fonction de hachage.
Fonction de hachage de Chaum-van Heijst-Ptzmann. Elle nest pas utilisee
en pratique car trop lente.
Soit p = 1 + 2q un grand nombre premier tel que q soit aussi premier. Soit
et deux elements primitifs de (Z/pZ)

. La valeur de log

nest pas
publique et lon suppose quelle est calculatoirement dicile `a obtenir.
On demontre que la fonction de hachage
h : 0, 1 . . . , q 1 0, 1 . . . , q 1 (Z/pZ)

(x
1
, x
2
) h(x
1
, x
2
) =
x
1

x
2
resiste aux collisions si le calcul de log

est dicile.
10.1.3 Fonction de hachage standard.
Un standard actuel en mati`ere de fonction de hachage est SHA-1 (Secure
Hash Algorithm) avec une empreinte de taille 160 bits, faisant suite aux
standard MD4 (1990), MD5 (1992), SHA (1995), cf. [31].
10.1. CONSTRUCTION DES FONCTIONS DE HACHAGE 131
Depuis 2001, une nouvelle version de SHA-1, SHA-2, ainsi que les versions
SHA-256, SHA-384 et SHA-512 sont en cours de validation (256, 384, 512
est la taille en bits de lempreinte).
Description sommaire de SHA:
1. Le message est complete pour que longueur soit un multiple de 512
bits; pour cela on ajoute un bit `a 1, un certain nombres de bits `a
0, et un entier sur 64 bits representant la longueur du message avant
remplissage.
2. On initialise les registres A, B, C, D et E avec des constantes xees
3. Pour chaque bloc de 512 bits du message
(a) on copie A, B, C, D et E respectivement dans AA, BB, CC,
DD et EE
(b) on applique la fonction de compression, donnee ci dessous, `a AA,
BB, CC, DD et EE pour le bloc courant
(c) on ajoute les valeurs trouvees `a A, B, C, D et E
4. le resultat est la concatenation de A, B, C, D et E
Fonction de compression
1. Les 512 bits du bloc courant sont scindes en 16 mots de 32 bits
(W
(0)
, . . . , W
(15)
)
2. on realise une expansion par
i 16, . . . , 79, W
(i)
= ROL
1
_
W
(i3)
W
(i8)
W
(i14)
W
(i16)
_
o` u ROL
k
represente un decalage circulaire de k-bits vers la gauche et
laddition modulo 2 bit `a bit et sans retenue (=ou exclusif).
3. Ces 80 mots de 42 bits sont utilises pour modier les 5 variables detat
A
(i)
, B
(i)
, C
(i)
, D
(i)
, E
(i)
on initialise
_
A
(0)
, B
(0)
, C
(0)
, D
(0)
, E
(0)
_
=
_
AA, BB, CC, DD, EE
_
132 CHAPITRE 10. FONCTIONS DE HACHAGE
pour i variant de 0 `a 79
A
(i+1)
= ADD
_
W
(i)
, ROL
5
(1
(i)
, f
(i)
(B
(i)
, C
(i)
, D
(i)
, E
(i)
, K
(i)
_
B
(i+1)
= A
(i)
C
(i+1)
= ROL
30
(B
(i)
)
D
(i+1)
= C
(i)
E
(i+1)
= D
(i)
o` u
ADD represente laddition modulo 2
32
Les K
(i)
sont des constantes xees et les fonctions f
(i)
sont de-
nies par
i f
(i)
K
(i)
0 19 (X Y ) (X Z) 5A827999
30 39 X Y Z 6ED9EBA1
40 59 (X Y ) (X Z) (Y Z) 8F1BBCDC
60 79 X Y Z CA62C1D6
o` u represente le ou inclusif et le et
larchitecture est representee par le schema 10.1
10.1. CONSTRUCTION DES FONCTIONS DE HACHAGE 133
bloc (512 bits)
80 mots de 32 bits
ADD
f
(i)
K
i
ROL
5
expansion
A
B
ROL
30
C
D
E
Figure 10.1: Architecture du SHA
Chapitre 11
Quelques protocoles cryptographiques.
11.1 Protocoles de signature.
Nous avons dej`a decrit des protocoles de signature RSA et El Gamal. Nous
allons decrire un protocole de signature utilisable avec les cryptosyst`emes
symetriques et nous allons rappeler le protocole de signature pour un cryp-
tosyst`eme `a clef publique dej`a decrit.
11.1.1 Protocole de signature `a clef privee.
Signature dun document `a laide dun cryptosyst`eme `a clef secr`ete et dun
arbitre ou tiers de conance.
Les utilisateurs dun cryptosyst`eme `a clef publique se choisissent un arbitre,
Yvan, cest `a dire une entite (personne, organisation, machine) en qui ils ont
toute conance.
Yvan communique avec Alice et Bob. Il partage une cle secr`ete K
A
avec
Alice et une cle secr`ete K
B
avec Bob.
Le protocole de signature est alors le suivant
1. Alice chire son message pour Bob avec la cle K
A
et envoie le resultat
`a Yvan.
2. Yvan dechire le message avec K
A
et garde loriginal.
3. Yvan assemble le message avec un avis certiant que le message vient
dAlice. Il chire le tout avec K
B
et lenvoie `a Bob.
4. Bob dechire le message dYvan avec K
B
. Il lit le message et le certi-
cat dYvan.
134
11.1. PROTOCOLES DE SIGNATURE 135
5. Comme il a conance en Yvan, il admet que le message re cu est con-
forme `a loriginal et vient bien dAlice.
Ce protocole est-il s ur?
Les 4 qualites que lon demande `a un cryptosyst`eme sont-elles bien presentes:
Condentialite
Integrite des donnees.
Identites des dierents interlocuteurs.
Non-repudiation.
Bien s ur on suppose quAlice garde bien secr`ete la clef quelle partage avec
Yvan et quYvan est vraiment un tiers de conance.
1. La signature est authentique car Yvan est respecte et seul Alice et lui
connaissent K
A
donc la message vient bien dAlice.
2. La signature est infalsiable. Seule Alice (et Yvan qui est insoup con-
nable) connait K
A
, donc seule Alice peut envoyer le message code avec
K
A
.
3. La signature nest pas reutilisable pour un autre message. Si Bob
essaie de prendre le certicat dYvan et de lassocier `a un autre message
cense provenir dAlice, cette derni`ere crierait `a limposture. Larbitre
demandera alors `a Bob de produire le texte en clair. Il le chirerait
avec K
A
et comparerait avec le message original dAlice. Il verra quils
sont dierents et en informera qui de droit.
4. Le document est immuable. Si Bob falsiait le message apr`es lavoir
re cu, Yvan pourrait devoiler limposture comme ci-dessus.
5. La signature ne peut pas etre reniee. Si Alice pretend ne pas avoir
envoye le message, le certicat dYvan prouverait le contraire (tout le
monde a conance en Yvan).
Bob pourrait nier avoir re cu le message mais alors un syst`eme daccuse de
reception permettrait deviter ce probl`eme.
136 CHAPITRE 11. PROTOCOLES CRYPTOGRAPHIQUES
11.1.2 Protocole de signature `a clef publique.
Le protocole est simple
1. Alice chire le document dune part avec sa cle privee, signant ainsi le
document, et dautre part avec la cle publique de Bob
2. Alice envoie les deux document `a Bob.
3. Bob dechire le premier document avec la cle publique dAlice et le
second avec sa cle privee. Si les deux sont identiques il est s ur quAlice
est lexpediteur.
Ce protocole est-il s ur?
Les 3 qualites que lon demande `a un cryptosyst`eme sont-elles bien presentes:
Integrite des donnees.
Identites des dierents interlocuteurs.
Non-repudiation.
Bien s ur on suppose que chacun des correspondants ne communique `a per-
sonne sa cle secr`ete
1. La signature est authentique: quand Bob verie le message avec la cle
publique dAlice, il est s ur que seule Alice pouvait lavoir crypte avec
sa cle privee.
2. La signature est infalsiable. Seule Alice connait sa cle privee.
3. La signature nest pas reutilisable. La signature est une fonction du
document et elle ne peut pas etre transferee sur nimporte quel autre
document.
4. Le document est immuable. Si Bob falsiait le message apr`es lavoir
re cu, il ne pourrait pas le signer car la cle privee dAlice nest connue
que delle seule.
5. La signature ne peut pas etre reniee. Bob na pas besoin de laide
dAlice pour verier sa signature.
11.2. PROTOCOLES DE DATATION 137
11.2 Protocoles de datation.
Dans certaines circonstances Bob peut duper Alice.
Il peut reutiliser le document (par exemple un ch`eque signe) et le presenter
plusieurs fois `a la banque. Pour leviter les signatures numeriques compor-
tent souvent une datation (date+heure). Cette datation de la signature est
attachee au message et signee avec lui.
La banque stocke ces datations dans une base de donnees.
11.2.1 Protocole de datation.
On peut coner la datation des documents `a un service ociel de datation.
Bob veut dater une signature du message x. Il dispose dune fonction de
hachage `a sens unique, h. Il suit alors le protocole suivant
1. Bob calcule z = h(x) et y = sig
K
(z)
2. Bob soumet (z, y) au service de datation.
3. Le service de datation ajoute la date D et signe le triplet (z, y, D)
Bob peut aussi dater un document, x, seul. Pour cela il collecte un cer-
tain nombre d informations publiques recentes (qui nauraient pas pu etre
predites auparavant), notee pub. Par exemple les derniers resultats des
courses hippiques et les cours actuels de la bourse. Il dispose aussi dune
fonction de hachage publique `a sens unique, h. Bob suit alors le protocole
suivant:
1. Bob calcule z = h(x)
2. Bob calcule z

= h(z[[pub)
3. Bob calcule y = sig
K
(z

)
4. Bob publie (z, pub, y) dans le prochain quotidien
La date de la signature de Bob est comprise entre la date des informations
pub et la date de parution du quotidien.
138 CHAPITRE 11. PROTOCOLES CRYPTOGRAPHIQUES
11.3 Protocole de signature `a clef publique et fonction de
hachage.
Les algorithmes `a clef publique sont trop lents pour signer de longs docu-
ments.
Pour gagner du temps les protocoles de signature numerique sont souvent
realises avec des fonctions de hachage `a sens unique.
Au lieu de signer le document Alice signe lempreinte du document en suivant
le protocole suivant:
1. Alice calcule `a laide de la fonction de hachage `a sens unique, lem-
preinte du document.
2. Alice chire, `a laide de lalgorithme de signature numerique, cette em-
preinte avec sa clef privee, signant par la meme occasion le document.
3. Alice envoie le document et lempreinte signee `a Bob (`a laide de la
clef publique de Bob).
4. Bob calcule, `a laide de la fonction de hachage `a sens unique, lemprein-
te du document quAlice lui a envoye. Ensuite `a laide de lalgorithme
de signature numerique, il dechire lempreinte signee avec la clef
publique dAlice. La signature est valide si lempreinte de la signa-
ture est la meme que lempreinte quil a produite.
Avantage de ce procede:
rapidite de la transmission et de la comparaison des empreintes car
une empreinte ne comporte que 160 bits ou au plus 512.
condentialite car la signature peut etre gardee `a part du message. On
peut donc verier lexistence du document sans stocker son contenu.
11.4 Fonction de hachage et mot de passe.
Pour acceder `a un ordinateur (ou `a un distributeur de billet) on utilise
souvent un mot de passe qui doit etre reconnu par lordinateur. Sil est
stocke dans lordinateur il y a danger pour la securite car un ordinateur
peut etre facilement inltre (virus). Gr ace `a la fonction de hachage on peut
resoudre `a ce probl`eme:
11.5. PREUVE SANS TRANSFERT DE CONNAISSANCE 139
On dispose dune fonction de hachage `a sens unique, h. Lordinateur ne
stocke pas le mot de passe mp dAlice mais le resultat de la fonction de
hachage `a sens unique appliquee `a mp. Le protocole est donc le suivant:
1. Alice envoie son mot de passe mp `a lordinateur.
2. Lordinateur calcule h(mp)
3. Lordinateur compare le resultat de ce calcul `a celui quil a dans sa
base de donnees.
Ce protocole permet de se defendre contre le vol de la base des donnees des
mots de passe des utilisateurs.
En fait on peut encore ameliorer ce protocole avec les protocoles de preuve
sans transfert de connaissance.
11.5 Preuve sans transfert de connaissance.
Un jeu de Pile ou face par Telephone. Considerons la situation suivante,
cf. [37].
Alice et Bob viennent de divorcer et habitent dans des villes dierentes et
veulent par telephone tirer `a pile ou face pour savoir `a qui va echoir la
voiture, la machine `a laver, les livres, etc...
Mais Bob hesite `a dire `a Alice face pour sentendre dire voil` a je jette une
pi`ece,..., elle retombe,..., pas de chance cest pile.
Ils veulent un protocole qui evite toute tricherie.
Ils se donnent un ensemble E par exemple E = 0, 1, . . . , n et une partition
E = X
0
X
1
de E , X
0
sera les entiers pairs de E et X
1
les entiers impairs
de E. Puis ils se mettent daccord sur une fonction `a sens unique, f, de E
dans un ensemble F.
On consid`ere le protocole suivant
1. Alice choisit un element x E aleatoirement (cest le jet de la pi`ece),
calcule y = f(x) et communique y `a Bob (Bob ne peut pas retrouver
x `a partir de y car f est `a sens unique).
2. Bob choisit son bit aleatoire b 0, 1 et lannonce `a Alice
3. Alice declare qui a gagne suivant que x X
b
ou non: elle prouve sa
bonne foi en revelant x
140 CHAPITRE 11. PROTOCOLES CRYPTOGRAPHIQUES
4. Bob se convainc quil ny a pas eu tricherie en veriant que y = f(x)
Ce protocole est-il s ur:
1. Si la fonction f est bien choisie la donnee de f(x) napprend rien `a
Bob sur x.
2. Pour quAlice ne puisse pas tricher, il faut sassurer quelle ne peut
pas fabriquer deux entiers x
0
X
0
et x
1
X
1
tels que f(x
0
) = f(x
1
),
par exemple on peut prendre f bijective car lensemble est de taille
reduite.
3. f doit etre `a sens unique en un sens fort pour que la connaissance de
f(x) napprenne rien `a Bob sur lappartenance de x `a X
0
ou X
1
Ce protocole met en evidence la notion dengagement: Alice sengage sur
x en publiant f(x). Cela ne rev`ele rien sur x mais force Alice `a ne pas
modier son choix.
11.5.1 Protocole de preuve sans transfert de connaissances.
Le protocole precedent peut etre utilise dans beaucoup de situation o` u lon
veut prouver que lon connait un secret sans avoir besoin de le reveler.
Pour acceder `a un ordinateur on donne son mot de passe qui est reconnu par
lordinateur et donc stocke dedans. Si lordinateur auquel on se connecte est
lointain, le mot de passe circule (crypte) sur des canaux qui risquent detre
espionnes.
Pour la securite il faudrait le changer souvent. Si la connexion est coupee
accidentellement, il faut le redonner sans avoir la possiblite den changer.
Le clavier sur lequel on compose le mot de passe peut etre espionne.
Il y a donc un interet `a avoir un syst`eme de reconnaissance sans envoi de
mot de passe meme crypte.
Pour cela il faut disposer dun secret personnel s et dun protocole qui permet
de persuader lordinateur (ou la personne) auquel on se connecte (sadresse)
quon connait s sans avoir `a le reveler et ce `a chaque fois `a laide de messages
differents.
De tels protocoles existent ce sont des applications des idees de complexite
calculatoire et de fonctions `a sens unique.
11.5. PREUVE SANS TRANSFERT DE CONNAISSANCE 141
Exemple 11.5.1 (Preuve de possession dun logarithme discret). Cet ex-
emple est tire de [37]. On se donne p un nombre premier et g une racine
primitive modulo p (theor`eme 13.3.17 page 173) qui sont publics et tels que
le probl`eme du logarithme discret soit un probl`eme calculatoirement dicile.
Supposons que P (le prouveur) detienne le nombre secret s et soit identie
par I = g
s
mod p. Il sagit de convaincre V (le vericateur) que P connait
s.
Considerons le protocole suivant:
1. P choisit un r mod p 1 aleatoire, il calcule t =
r
(mod p) et le
communique `a V .
2. V choisit un bit aleatoire = 0, 1 et le communique `a P
3. P donne x `a V o` u
_
x r mod p 1 si = 0
x r +s si = 1
V verie alors que
_

x
= t mod p si = 0

x
It mod p si = 1
.
Comme dans le protocole de pile ou face P sest engage sur r en communi-
quant t =
r
.
Que peut faire un imposteur P

qui ne connait pas s et veut se faire passer


pour P aupr`es de V .
Il peut suivre le protocole et esperer que = 0; dans le cas contraire
il ne saura pas quel y communiquer `a V.
Il peut au contraire choisir un r aleatoire et communiquer `a V la
quantite t

=

r
I
. Si V choisit = 1 alors P

donne x

= r et survit `a
la verication
x

= t

I. Mais si = 0 alors P

ne sait que faire.


Donc quel que soit la mani`ere dont P

sy prenne il na quune chance sur


deux de donner la bonne reponse.
1. Au bout de k applications du protocole, V est convaincu avec proba-
bilite de 1
1
2
k
que son interlocuteur detient un logarithme de I
2. Linformation revelee `a V nest quune liste dentiers modulo p alea-
toires et de leurs images par lexponentielle x
x
. Le vericateur
V aurait pu aussi bien se la constituer seul en choisissant au hasard
des entiers modulo p et en les exponentiant modulo p.
142 CHAPITRE 11. PROTOCOLES CRYPTOGRAPHIQUES
3. P na revele aucune information sur son secret le logarithme de I.
Cest un exemple de protocole interactif et sans transfert de connaissance
(zero knowledge proof).
Il y a dautres protocoles qui permettent par exemple de realiser un trans-
fert inconscient.
11.5.2 Transfert inconscient.
Alice dispose dun ensemble de m secrets s
1
, s
2
, . . . , s
m
. Alice est prete `a
en donner (vendre) un `a Bob.
Bob aimerait obtenir le secret s
i
, mais il ne souhaite pas reveler `a Alice
lequel des secrets linteresse. Il existe des protocoles, [37], qui donnent une
solution `a ce probl`eme:
1. ils permettent `a Bob de disposer de s
i
2. ils ne lui donnent aucune information sur les autres secrets s
j
, j ,= i
3. ils ne permettent pas `a Alice de savoir quel secret elle a livre `a Bob
Chapitre 12
La cryptographie et le droit.
Le droit joue un r ole important en cryptographie comme dans beaucoup de
techniques liees aux aspects regaliens du r ole de l

Etat. Le droit vient au


secours de l

Etat et des citoyens quand une technique menace leur interet et


au contraire vient au secours dune technique quand ses limitations ne lui
permettent pas de remplir de mani`ere transparente et s ure les missions qui
lui sont conees.
Par exemple sil existait une cryptographie inviolable elle pourrait premet-
tre des usages frauduleux qui ne pourrait pas etre detectes (transferts de
capitaux, espionnage,...). Au contraire sil nexistait pas de cryptographie
s ure les

Etats auraient du mal `a communiquer de mani`ere condentielle avec
leur ambassadeurs. Dans un cas comme dans lautre les

Etats edictent des
lois soit pour interdire lutilisation libre dune cryptographie inviolable soit
pour limiter lusage de la cryptanalyse.
12.1 Quelques textes juridiques sur la cryptographie.
12.1.1 LOI n

96-659 du 26 juillet 1996 .


LOI n

96-659 du 26 juillet 1996 de reglementation des telecommunications (1)


Article 17. - Larticle 28 de la loi n

90-1170 du 29 decembre 1990 sur la reglemen-


tation des telecommunications est ainsi modie :
I. - Le I est ainsi modie :
1

Le premier alinea est complete par une phrase ainsi redigee :


On entend par moyen de cryptologie tout materiel ou logiciel concu ou modi-
e dans le meme objectif.
2

Les deuxi`eme, troisi`eme, quatri`eme et cinqui`eme alineas sont remplaces par les dispo-
sitions suivantes :
143
144 CHAPITRE 12. LA CRYPTOGRAPHIE ET LE DROIT
Pour preserver les interets de la defense nationale et de la securite interieure
ou exterieure de lEtat, tout en permettant la protection des informations et
le developpement des communications et des transactions securisees :
1

Lutilisation dun moyen ou dune prestation de cryptologie est :


a) Libre :
- si le moyen ou la prestation de cryptologie ne permet pas dassurer des
fonctions de condentialite, notamment lorsquil ne peut avoir comme objet
que dauthentier une communication ou dassurer lintegrite du message
transmis,
- ou si le moyen ou la prestation assure des fonctions de condentialite et
nutilise que des conventions secr`etes gerees selon les procedures et par un
organisme agrees dans les conditions denies au II ;
b) Soumise `a autorisation du Premier ministre dans les autres cas ;
2

La fourniture, limportation de pays nappartenant pas `a la Communaute


europeenne et lexportation tant dun moyen que dune prestation de cryp-
tologie :
a) Sont soumises `a autorisation prealable du Premier ministre lorsquils as-
surent des fonctions de condentialite ; lautorisation peut etre subordonnee
`a lobligation pour le fournisseur de communiquer lidentite de lacquereur,
b) Sont soumises `a la declaration aupr`es du Premier ministre dans les autres
cas ;
3o Un decret xe les conditions dans lesquelles sont souscrites les declara-
tions et accordees les autorisations. Ce decret prevoit :
a) Un regime simplie de declaration ou dautorisation pour certains types
de moyens ou de prestations ou pour certaines categories dutilisateurs ;
b) La substitution de la declaration `a lautorisation pour les operations
portant sur des moyens ou des prestations de cryptologie, dont les car-
acteristiques techniques ou les conditions dutilisation, tout en justiant,
au regard des interets susmentionnes, un suivi particulier, nexigent pas
lautorisation prealable de ces operations ;
c) La dispense de toute formalite prealable pour les operations portant sur
des moyens ou des prestations de cryptologie, dont les caracteristiques tech-
niques ou les conditions dutilisation sont telles que ces operations ne sont pas
susceptibles de porter atteinte aux interets mentionnes au deuxi`eme alinea ;
d) Les delais de reponse aux demandes dautorisation.
II. - Le II est remplace par un II et un III ainsi rediges :
II. - Les organismes charges de gerer pour le compte dautrui les conventions
secr`etes de moyens ou prestations de cryptologie permettant dassurer des
fonctions de condentialite doivent etre prealablement agrees par le Premier
ministre.
Ils sont assujettis au secret professionnel dans lexercice de leurs activites
agreees.
Lagrement precise les moyens ou prestations quils peuvent utiliser ou four-
nir.
Ils sont tenus de conserver les conventions secr`etes quils g`erent. Dans le
cadre de lapplication de la loi no 91-646 du 10 juillet 1991 relative au secret
12.1. TEXTES JURIDIQUES SUR LA CRYPTOGRAPHIE 145
des correspondances emises par la voie des telecommunications ainsi que
dans le cadre des enquetes menees au titre des chapitres premier et II du
titre II du livre premier du code de procedure penale, ils doivent les remettre
aux autorites judiciaires ou aux autorites habilitees, ou les mettre en oeuvre
selon leur demande.
Lorsque ces organismes remettent les conventions secr`etes quils g`erent dans
le cadre des enquetes menees au titre des chapitres premier et II du titre
II du livre premier du code de procedure penale, suite aux requisitions du
procureur de la Republique, ils informent les utilisateurs de cette remise.
Ils doivent exercer leurs activites agreees sur le territoire national.
Un decret en Conseil dEtat xe les conditions dans lesquelles ces organismes
sont agrees ainsi que les garanties auxquelles est subordonne lagrement ; il
precise les procedures et les dispositions techniques permettant la mise en
oeuvre des obligations indiquees ci-dessus.
III. - a) Sans prejudice de lapplication du code des douanes, le fait de
fournir, dimporter de pays nappartenant pas `a la Communaute europeenne
ou dexporter un moyen ou une prestation de cryptologie sans avoir obtenu
lautorisation prealable mentionnee au I ou en dehors des conditions de
lautorisation delivree est puni de six mois demprisonnement et de 200 000
F damende.
Le fait de gerer, pour le compte dautrui, des conventions secr`etes de moyens
ou de prestations de cryptologie permettant dassurer des fonctions de con-
dentialite sans avoir obtenu lagrement mentionne au II ou en dehors
des conditions de cet agrement est puni de deux ans demprisonnement et
de 300 000 F damende.
Le fait de fournir, dimporter de pays nappartenant pas `a la Communaute
europeenne, dexporter ou dutiliser un moyen ou une prestation de cryptolo-
gie en vue de faciliter la preparation ou la commission dun crime ou dun
delit est puni de trois ans demprisonnement et de 500 000 F damende.
La tentative des infractions prevues aux alineas precedents est punie des
memes peines.
b) Les personnes physiques coupables des infractions prevues au a encourent
les peines complementaires prevues aux articles 131-19, 131-21 et 131-27 et,
`a titre denitif ou pour une duree de cinq ans au plus, les peines prevues
aux articles 131-33 et 131-34 du code penal.
III. - Le III devient IV. Son dernier alinea est ainsi redige :
Est puni dun emprisonnement de six mois et dune amende de 200 000 F le
fait de refuser de fournir les informations ou documents ou de faire obstacle
au deroulement des enquetes mentionnees au present paragraphe.
Apr`es le mot autorisations sont inseres les mots et declarations.
V. - Il est ajoute un VI ainsi redige :
VI. - Les dispositions du present article ne font pas obstacle `a lapplication
du decret du 18 avril 1939 xant le regime des materiels de guerre, armes et
munitions, `a ceux des moyens de cryptologie qui sont specialement concus
ou modies pour permettre ou faciliter lutilisation ou la mise en oeuvre des
armes.
146 CHAPITRE 12. LA CRYPTOGRAPHIE ET LE DROIT
VI. - Le V devient VII.
VII. - Le present article est applicable aux territoires doutre-mer et `a la
collectivite territoriale de Mayotte.
12.1.2 LOI n

2004-575 du 21 juin 2004.


LOI n

2004-575 du 21 juin 2004 pour la conance dans leconomie numerique


TITRE III
DE LA S

ECURIT

E DANS L

ECONOMIE
NUM

ERIQUE
Chapitre Ier
Moyens et prestations de cryptologie
Article 29 On entend par moyen de cryptologie tout materiel ou logiciel concu ou
modie pour transformer des donnees, quil sagisse dinformations ou de signaux, `a laide
de conventions secr`etes ou pour realiser loperation inverse avec ou sans convention secr`ete.
Ces moyens de cryptologie ont principalement pour objet de garantir la securite du stock-
age ou de la transmission de donnees, en permettant dassurer leur condentialite, leur
authentication ou le controle de leur integrite.
On entend par prestation de cryptologie toute operation visant `a la mise en oeuvre, pour
le compte dautrui, de moyens de cryptologie.
Section 1
Utilisation, fourniture, transfert, importation et exportation de moyens de
cryptologie
Article 30 I. - Lutilisation des moyens de cryptologie est libre.
II. - La fourniture, le transfert depuis ou vers un Etat membre de la Communaute eu-
ropeenne, limportation et lexportation des moyens de cryptologie assurant exclusivement
des fonctions dauthentication ou de controle dintegrite sont libres.
III. - La fourniture, le transfert depuis un Etat membre de la Communaute europeenne
ou limportation dun moyen de cryptologie nassurant pas exclusivement des fonctions
dauthentication ou de controle dintegrite sont soumis `a une declaration prealable aupr`es
du Premier ministre, sauf dans les cas prevus au b du present III. Le fournisseur ou la
personne procedant au transfert ou `a limportation tiennent `a la disposition du Premier
ministre une description des caracteristiques techniques de ce moyen de cryptologie, ainsi
que le code source des logiciels utilises. Un decret en Conseil dEtat xe :
a) Les conditions dans lesquelles sont souscrites ces declarations, les conditions et les
delais dans lesquels le Premier ministre peut demander communication des car-
acteristiques du moyen, ainsi que la nature de ces caracteristiques ;
12.1. TEXTES JURIDIQUES SUR LA CRYPTOGRAPHIE 147
b) Les categories de moyens dont les caracteristiques techniques ou les conditions dutili-
sation sont telles que, au regard des interets de la defense nationale et de la securite
interieure ou exterieure de lEtat, leur fourniture, leur transfert depuis un Etat
membre de la Communaute europeenne ou leur importation peuvent etre dispenses
de toute formalite prealable.
IV. - Le transfert vers un Etat membre de la Communaute europeenne et lexportation
dun moyen de cryptologie nassurant pas exclusivement des fonctions dauthentication
ou de controle dintegrite sont soumis `a autorisation du Premier ministre, sauf dans les
cas prevus au b du present IV. Un decret en Conseil dEtat xe :
a) Les conditions dans lesquelles sont souscrites les demandes dautorisation ainsi que les
delais dans lesquels le Premier ministre statue sur ces demandes ;
b) Les categories de moyens dont les caracteristiques techniques ou les conditions dutili-
sation sont telles que, au regard des interets de la defense nationale et de la securite
interieure ou exterieure de lEtat, leur transfert vers un Etat membre de la Commu-
naute europeenne ou leur exportation peuvent etre soit soumis au regime declaratif
et aux obligations dinformation prevus au III, soit dispenses de toute formalite
prealable.
Section 2
Fourniture de prestations de cryptologie
Article 31 I. - La fourniture de prestations de cryptologie doit etre declaree aupr`es
du Premier ministre. Un decret en Conseil dEtat denit les conditions dans lesquelles
est eectuee cette declaration et peut prevoir des exceptions `a cette obligation pour les
prestations dont les caracteristiques techniques ou les conditions de fourniture sont telles
que, au regard des interets de la defense nationale et de la securite interieure ou exterieure
de lEtat, cette fourniture peut etre dispensee de toute formalite prealable.
II. - Les personnes exercant cette activite sont assujetties au secret professionnel, dans les
conditions prevues aux articles 226-13 et 226-14 du code penal.
Article 32 Sauf `a demontrer quelles nont commis aucune faute intentionnelle ou
negligence, les personnes fournissant des prestations de cryptologie `a des ns de con-
dentialite sont responsables au titre de ces prestations, nonobstant toute stipulation
contractuelle contraire, du prejudice cause aux personnes leur conant la gestion de leurs
conventions secr`etes en cas datteinte `a lintegrite, `a la condentialite ou `a la disponibilite
des donnees transformees `a laide de ces conventions.
Article 33 Sauf `a demontrer quils nont commis aucune faute intentionnelle ou
negligence, les prestataires de services de certication electronique sont responsables du
prejudice cause aux personnes qui se sont ees raisonnablement aux certicats presentes
par eux comme qualies dans chacun des cas suivants:
1

Les informations contenues dans le certicat, `a la date de sa delivrance, etaient inex-


actes ;
2

Les donnees prescrites pour que le certicat puisse etre regarde comme qualie etaient
incompl`etes ;
148 CHAPITRE 12. LA CRYPTOGRAPHIE ET LE DROIT
3

La delivrance du certicat na pas donne lieu `a la verication que le signataire detient


la convention privee correspondant `a la convention publique de ce certicat ;
4

Les prestataires nont pas, le cas echeant, fait proceder `a lenregistrement de la revo-
cation du certicat et tenu cette information `a la disposition des tiers.
Les prestataires ne sont pas responsables du prejudice cause par un usage du certicat
depassant les limites xees `a son utilisation ou `a la valeur des transactions pour lesquelles
il peut etre utilise, `a condition que ces limites gurent dans le certicat et soient accessibles
aux utilisateurs.
Ils doivent justier dune garantie nanci`ere susante, specialement aectee au paiement
des sommes quils pourraient devoir aux personnes setant ees raisonnablement aux certi-
cats qualies quils delivrent, ou dune assurance garantissant les consequences pecuniai-
res de leur responsabilite civile professionnelle.
Section 3
Sanctions administratives
Article 34 Lorsquun fournisseur de moyens de cryptologie, meme `a titre gratuit,
ne respecte pas les obligations auxquelles il est assujetti en application de larticle 30, le
Premier ministre peut, apr`es avoir mis linteresse `a meme de presenter ses observations,
prononcer linterdiction de mise en circulation du moyen de cryptologie concerne.
Linterdiction de mise en circulation est applicable sur lensemble du territoire national.
Elle emporte en outre pour le fournisseur lobligation de proceder au retrait :
1

Aupr`es des diuseurs commerciaux, des moyens de cryptologie dont la mise en circu-
lation a ete interdite ;
2

Des materiels constituant des moyens de cryptologie dont la mise en circulation a ete
interdite et qui ont ete acquis `a titre onereux, directement ou par lintermediaire
de diuseurs commerciaux.
Le moyen de cryptologie concerne pourra etre remis en circulation d`es que les obligations
anterieurement non respectees auront ete satisfaites, dans les conditions prevues `a larticle
30.
Section 4
Dispositions de droit penal
Article 35 I. - Sans prejudice de lapplication du code des douanes :
1

Le fait de ne pas satisfaire `a lobligation de declaration prevue `a larticle 30 en cas de


fourniture, de transfert, dimportation ou dexportation dun moyen de cryptologie
ou `a lobligation de communication au Premier ministre prevue par ce meme article
est puni dun an demprisonnement et de 15 000 EUR damende;
2

Le fait dexporter un moyen de cryptologie ou de proceder `a son transfert vers un


Etat membre de la Communaute europeenne sans avoir prealablement obtenu
lautorisation mentionnee `a larticle 30 ou en dehors des conditions de cette autorisa-
tion, lorsquune telle autorisation est exigee, est puni de deux ans demprisonnement
et de 30 000 EUR damende.
12.1. TEXTES JURIDIQUES SUR LA CRYPTOGRAPHIE 149
II. - Le fait de vendre ou de louer un moyen de cryptologie ayant fait lobjet dune in-
terdiction administrative de mise en circulation en application de larticle 34 est puni de
deux ans demprisonnement et de 30 000 EUR damende.
III. - Le fait de fournir des prestations de cryptologie visant `a assurer des fonctions de
condentialite sans avoir satisfait `a lobligation de declaration prevue `a larticle 31 est
puni de deux ans demprisonnement et de 30 000 EUR damende.
IV. - Les personnes physiques coupables de lune des infractions prevues au present article
encourent egalement les peines complementaires suivantes:
1

Linterdiction, suivant les modalites prevues par les articles 131-19 et 131-20 du code
penal, demettre des ch`eques autres que ceux qui permettent le retrait de fonds
par le tireur aupr`es du tire ou ceux qui sont certies, et dutiliser des cartes de
paiement;
2

La conscation, suivant les modalites prevues par larticle 131-21 du code penal, de la
chose qui a servi ou etait destinee `a commettre linfraction ou de la chose qui en
est le produit, `a lexception des objets susceptibles de restitution;
3

Linterdiction, suivant les modalites prevues par larticle 131-27 du code penal et
pour une duree de cinq ans au plus, dexercer une fonction publique ou dexercer
lactivite professionnelle ou sociale dans lexercice ou `a loccasion de lexercice de
laquelle linfraction a ete commise;
4

La fermeture, dans les conditions prevues par larticle 131-33 du code penal et pour
une duree de cinq ans au plus, des etablissements ou de lun ou de plusieurs des
etablissements de lentreprise ayant servi `a commettre les faits incrimines;
5

Lexclusion, dans les conditions prevues par larticle 131-34 du code penal et pour une
duree de cinq ans au plus, des marches publics.
V. - Les personnes morales sont responsables penalement, dans les conditions prevues
par larticle 121-2 du code penal, des infractions prevues au present article. Les peines
encourues par les personnes morales sont:
1

Lamende, suivant les modalites prevues par larticle 131-38 du code penal;
2

Les peines mentionnees `a larticle 131-39 du code penal.


VI. - Larticle L. 39-1 du code des postes et telecommunications est complete par un 4

ainsi redige:
4

De commercialiser ou de proceder `a linstallation dappareils concus pour


rendre inoperants les telephones mobiles de tous types, tant pour lemission
que pour la reception, en dehors des cas prevus `a larticle L. 33-3.
12.1.3 LOI n

2006-961 du 1er ao ut 2006.


LOI n

2006-961 du 1er ao ut 2006 relative au droit dauteur et aux droits voisins dans la
societe de linformation
Article 13 Dans la section 2 du chapitre Ier du titre III du livre III du code de la
propriete intellectuelle, il est insere un article L. 331-5 ainsi redige:
150 CHAPITRE 12. LA CRYPTOGRAPHIE ET LE DROIT
Art. L. 331-5. - Les mesures techniques ecaces destinees `a empecher ou `a
limiter les utilisations non autorisees par les titulaires dun droit dauteur ou
dun droit voisin du droit dauteur dune oeuvre, autre quun logiciel, dune
interpretation, dun phonogramme, dun videogramme ou dun programme
sont protegees dans les conditions prevues au present titre.
On entend par mesure technique au sens du premier alinea toute technolo-
gie, dispositif, composant qui, dans le cadre normal de son fonctionnement,
accomplit la fonction prevue par cet alinea. Ces mesures techniques sont re-
putees ecaces lorsquune utilisation visee au meme alinea est controlee par
les titulaires de droits grace `a lapplication dun code dacc`es, dun procede
de protection tel que le cryptage, le brouillage ou toute autre transformation
de lobjet de la protection ou dun mecanisme de controle de la copie qui
atteint cet objectif de protection.
Un protocole, un format, une methode de cryptage, de brouillage ou de
transformation ne constitue pas en tant que tel une mesure technique au
sens du present article.
Les mesures techniques ne doivent pas avoir pour eet dempecher la mise
en oeuvre eective de linteroperabilite, dans le respect du droit dauteur.
Les fournisseurs de mesures techniques donnent lacc`es aux informations
essentielles `a linteroperabilite dans les conditions denies aux articles L.
331-6 et L. 331-7.
Les dispositions du present chapitre ne remettent pas en cause la protection
juridique resultant des articles 79-1 `a 79-6 et de larticle 95 de la loi n

86-1067 du 30 septembre 1986 relative `a la liberte de communication.


Les mesures techniques ne peuvent sopposer au libre usage de loeuvre ou
de lobjet protege dans les limites des droits prevus par le present code, ainsi
que de ceux accordes par les detenteurs de droits.
Les dispositions du present article sappliquent sans prejudice des disposi-
tions de larticle L. 122-6-1 du present code.
Chapitre 13
Rappels Mathematiques.
13.1 Theorie de linformation.
La theorie de linformation est due `a Claude Shannon dans un article fon-
dateur paru en 1948, [25]. Elle permet de donner un sens `a la notion
dinformation contenue dans un message. A partir de cette theorie , il denit
en 1949, [26], la notion de secret. Son approche utilise quelques notions de
probabilite qui sont rappelees ci-dessous.
13.1.1 Rappels de probabilites discr`etes.
Denition 13.1.1. Une variable aleatoire discr`ete, X, consiste en un
ensemble X, une distribution de probabilites discr`etes (p
x
)
xX
sur X et de
la donnee Pr[X = x]: la probabilite que X se realise en x. Par denition
on a
x X, 0 Pr[X = x] 1, et

xX
Pr[X = x] = 1
Exemple 13.1.1. Le jet dune pi`ece de monnaie est une variable aleatoire,
X, denie sur lensemble X = pile, face, la probabilite associee etant
Pr[X = pile] = Pr[X = face] =
1
2
Exemple 13.1.2. Jet aleatoire dune paire de des. On peut le modeliser
par la variable aleatoire Z sur lensemble
Z = 1, 2, 3, 4, 5, 6 1, 2, 3, 4, 5, 6
muni de la probabilite Pr[Z = (i, j)] = Pr[(i, j)] =
1
36
. Si on veut calculer
la probabilite pour que la somme des deux des lors dun lancer soit 4. Cette
151
152 CHAPITRE 13. RAPPELS MATH

EMATIQUES
valeur correspond `a lev`enement
S
4
= (1, 3), (2, 2), (3, 1) =Pr[S
4
] =
3
36
=
1
12
Pour denir la condentialite parfaite on introduit les denitions suivantes:
Denition 13.1.2. Soient deux variables aleatoires X et Y denies sur
des ensembles nis X et Y respectivement. La probabibilite mutuelle
Pr[X = x, Y = y] = Pr[x, y] est la probabilite pour que X se realise en x et
Y se realise en y.
La probabilite conditionnelle Pr[X = x[Y = y] = Pr[x [ y] est la
probabilite que X se realise en x sachant que Y sest realise en y.
Denition 13.1.3. Les variables aleatoires X et Y sont dites des variables
aleatoires independantes si Pr[x, y] = Pr[x[y] pour tout x X et tout
y Y
On a la proposition
Proposition 13.1.4. On a la relation entre probabilite mutuelle et proba-
bilite conditionnelle
Pr[x, y] = Pr[x[y] Pr[y]
Demonstration: Cest evident.
On a le theor`eme important suivant
Theor`eme 13.1.5 (Theor`eme de Bayes). Si Pr[y] > 0, on a
Pr[x[y] =
Pr[x] Pr[y[x]
Pr[y]
Demonstration: Dapr`es la proposition 13.1.4 on a
Pr[x, y] = Pr[x[y] Pr[y]
et en echangeant x et y on aussi Pr[x, y] = Pr[y[x] Pr[x].
13.1.2 Condentialite parfaite.
On consid`ere un cryptosyst`eme (T, (, /, c, T) (denition 4.0.2 page 35) et
on suppose quune clef K / nest utilisee quune fois.
On suppose que lespace des textes clairs T est muni dune distribution de
probabilites associee `a une variable aleatoire x sur T, on denit Pr[x = x]
comme etant la probabilite a-priori doccurence du texte clair x.
13.1. TH

EORIE DE LINFORMATION 153


De meme on suppose que lespace des clefs / est muni dune distribution
de probabilites associee `a la variable aleatoire K sur lespace des clefs /,
on denit Pr[K = K] la probabilite pour que la cle K soit utilisee
(souvent on suppose les cles equiprobables).
Rappelons que la clef est toujours choisie par Alice et Bob avant de savoir
quel message Alice va transmettre. On peut donc supposer que les variables
aleatoires x et K sont independantes.
Les deux distributions de probabilites sur T et ( induisent une distribution
de probabilite sur lespace des messages chires ( associee `a la variable
aleatoire y. Un tel syst`eme sera dit probabilise.
On pose pour K / xe et pour e
K
c la fonction de chirement associee
C(K) = e
K
(x) : x T
C(K) est lensemble des messages chires avec la clef K. Pour tout y (
on a
Pr[y = y] =

KK,yC(K)
Pr[K = K] Pr[x = d
K
(y)]
o` u d
K
T est la fonction de decodage associee `a la cle K.
On a par application du theor`eme de Bayes
Pr[x = x[y = y] =
Pr[x = x]

KK,yC(K)
Pr[K = K]

KK,yC(K)
Pr[K = K] Pr[x = d
K
(y)]
On pose la denition
Denition 13.1.6. Un syst`eme cryptographique probabilise (T, (, /, c, T)
assure une condentialite parfaite si Pr[x[y] = Pr[x] pour tout x T
et tout y (, cest ` a dire si la probabilite a-posteriori que le texte clair soit
x sachant que le texte chire est y est egale ` a la probabilite a-priori que le
texte clair soit x.
On demontre les theor`emes suivants
Theor`eme 13.1.7. Si les vingt-six clefs dun chirement par decalage (code
de Cesar) sont utilisees avec la meme probabilite
1
26
alors pour toute distri-
bution dun bloc de texte clair on a condentialite parfaite.
154 CHAPITRE 13. RAPPELS MATH

EMATIQUES
Theor`eme 13.1.8. Un syst`eme cryptographique probabilise (T, (, /, c, T)
tel que [/[ = [([ = [T[ assure une condentialite parfaite si et seulement si
chaque clef est utilisee avec la meme probabilite
1
[/[
et si pour chaque x T
et chaque y (, il existe une clef K unique telle que e
K
(x) = y
Ce theor`eme est une mise en forme des remarques faites lors de letude du
code de Vernam. On voit bien la dierence quil y a entre condentialite
parfaite et code incassable. Un code de Cesar est `a condentialite parfaite
dapr`es le theor`eme precedent pourtant il est facilement cassable.
13.1.3 Entropie.
Pour etudier la situation plus realiste o` u une cle est utilisee plusieurs fois,
Claude Shannon a introduit la notion dentropie qui permet de modeliser
linformation revelee ` a un opposant lors dutilisations multiples dune meme
cle.
Une chane de transmission numerique comporte la source du message,
le milieu de transmission et le destinataire du message. Un mes-
sage numerique est une suite delements emis par la source pouvant pren-
dre chacun une valeur parmi q valeurs possibles dun alphabet note Q =
_
x
1
, x
2
, . . . , x
q
_
. Les elements de Q peuvent etre consideres comme des
variables aleatoires discr`etes.
On supposera que la source est sans memoire cest `a dire quelle est supposee
emettre des messages qui sont des suites aleatoires tirees dapr`es une loi de
probabilite, Pr(x
i
)
1iq
independante du temps. Autrement dit la source
est une variable aleatoire discr`ete notee X. On nopte
supp(X) =
_
x Q [ Pr(x) > 0
_
La theorie de linformation part de la remarque simple
Plus levenement donne par la source est probable, moins la quantite
dinformation correspondante est grande
On doit donc avoir un lien entre la quantite dinformation fournie par une
source et la distribution de probabilite de lalphabet de cette source. Ce qui
conduit `a la denition suivante
Denition 13.1.9. Soit X une variable aleatoire denie sur un ensemble
ni X. La quantite dinformation dun element x supp(X) est denie
13.1. TH

EORIE DE LINFORMATION 155


par:
I(x) = ln
2
Pr(x) = ln
2
1
Pr(x)
Lentropie de la variable aleatoire X est denie comme etant la quantite
H(X) =

xX
Pr[x] ln
2
Pr[x]
autrement dit cest la valeur moyenne de linformation fournie par lensem-
ble des elements x supp(X).
Cest une notion qui vient de la thermodynamique.
On denit lentropie conditionnelle de la source X connaissant levenement
Y = y
Denition 13.1.10. Soient X et Y deux sources discr`etes. Lentropie con-
ditionnelle de X etant donne levenement Y = y est deni par
H(X [ Y = y) =

xsupp(X | y)
Pr(x [ y) ln
2
Pr(x [ y)
Lentropie conditionnelle de la source X etant donne Y est denie par
H(X [ Y) =

ysupp(Y)
Pr(y) ln
2
H(X [ Y = y)
Exemple 13.1.3. Si X est une source binaire qui emet 0 avec une proba-
bilite p et 1 avec la probabite 1 p alors
H(X) = p ln
2
p (1 p) ln
2
(1 p)
On denit ensuite lentropie H(L) dun langage naturel L comme le fran cais
ou langlais. On essaye de quantier les informations quapporte le fait quen
fran cais le Q est presque toujours suivi du U et quun S est assez souvent
suivi dun autre S etc...
On se donne un cryptosyst`eme (T, (, /, c, T) en langue naturelle L. On
denit sa redondance
R
L
= 1
H
L
ln
2
[T[
On choisit une clef et un ensemble ni de messages clairs que lon chire
avec cette cle. On appelle clefs parasites les clefs de / qui donnent les
memes messages chires pour le meme ensemble de message.
156 CHAPITRE 13. RAPPELS MATH

EMATIQUES
Considerons un message M chire en C `a partir dune cle K (symetrique ou
asymetrique). On dit que le secret du message M est parfait si la connais-
sance de C ne fournit aucune information sur M autrement dit M doit rester
aussi imprevisible que lon connaisse C ou pas. De mani`ere mathematique
cela se traduit par legalite
H(M [ C) = H(M)
On peut montrer que dans tout cryptosyst`eme `a clef secr`ete qui fournit un
secret parfait, lincertitude sur la cle secr`ete doit au moins etre aussi grande
que lincertitude sur le texte en clair M. Ce resultat donne donc une borne
inferieure sur la taille minimale de la cle K supposee choisie aleatoirement
et de mani`ere uniforme: Le nombre de bits de K doit ere au moins aussi
grand que le nombre de bits dinformation dans le texte clair M.
On montre que le secret dun syst`eme `a cle publique parfait ne peut pas
etre modelise par la theorie de linformation de Shannon: ce secret ne vient
pas de lincertitude sur la cle privee K
d
mais sur la diculte intrins`eque `a
calculer K
d
`a partir de la cle publique K
e
et du message code C. Loutil
mathematique permettant de caracteriser cette diculte est la theorie de
la complexite algorithmique.
Denition 13.1.11. La distance dunicite dun cryptosyst`eme est la plus
petite valeur n, notee n
0
, telle que le nombre moyen de clefs parasites soit
nul. Cest la quantite de texte chire necessaire ` a un opposant disposant de
susamment de temps de calcul pour determiner la clef.
On montre que n
0

[/[
R
L
ln
2
[T[
. Par exemple pour le chirement par sub-
stitution sur les 26 lettres de lalphabet [T[ = 26, [/[ = 26!, si lon prend
R
L
= 0, 75 qui est une valeur admise pour langlais, il vient n
0
25. Ceci
montre que pour un message de 25 lettres il ny a en principe (en moyenne)
quun seul dechirement possible (cf. les alphabets T9 sur les portables).
13.2 Theorie de la complexite.
Le but de cette theorie est de classier les probl`emes algorithmiques en
fonction de leur diculte.
Il faut donc un mod`ele dordinateur. Le mod`ele le plus utilise est celui des
machines de Turing (Alan Turing, 1912-1954).
Une machine de Turing est la donnee de
13.2. TH

EORIE DE LA COMPLEXIT

E 157
1. un alphabet ni
2. une bande innie dans les deux sens formee de cases. Dans chaque
case peut etre inscrit au plus un symbole de . Les cases vides sont
marquees par un symbole special . On pose

= . la bande
modelise la memoire de lordinateur. A chaque instant seul un nombre
ni de cases de la bande contient un symbole de .
3. une tete de lecture/ecriture qui se deplace dune case `a lautre.
4. un ensemble ni detats Q, lun dentre eux etant appele letat initial.
5. un programme ou fonction de transition, compose dun tableau, indexe
par Q et

.
Pour chaque couple (q, s) Q

le programme poss`ede au plus une


instruction qui sera executee quand la machine sera dans letat q et que la
tete de lecture lira le symbole s.
Cette instruction est codee
(q

, s

, d) avec q

Q, s

d gauche,droite.
Son execution consiste `a ecrire le symbole s

`a la place de s `a deplacer la
tete de lecture dans la direction d et `a placer la machine dans letat q

.
Pour faire fonctionner la machine de Turing on inscrit une suite nie de
symboles sur la bande. On place la machine dans letat initial et on
positionne la tete de lecture sur la premi`ere case `a gauche contenant un
symbole de .
Ensuite la machine execute le programme et sarrete quand elle ne poss`ede
pas dinstructions correspondant au symbole lu et letat o` u elle se trouve.
Exemple 13.2.1. Testeur de parite. Cette machine teste la parite du nom-
bre de 1 dans un nombre n ecrit en base 2. Elle sarrete dans letat q
i
si n a
un nombre impair de 1 et elle sarrete dans letat q
p
si n poss`ede un nombre
pair de 1.
158 CHAPITRE 13. RAPPELS MATH

EMATIQUES
= 0, 1, Q = q
0
, q
1
, q
p
, q
i
, etat initial q
0
, fonction de transition
0 1
q
0
(q
0
, , droite) (q
1
, , droite) (q
p
, , droite)
q
1
(q
1
, , droite) (q
0
, , droite) (q
i
, , droite)
Exercices. 1
13.2.1. Verier que la machine de Turing de lexemple 13.2.1 compte bien
la parite du nombre de 1 de lecriture en base 2 dun entier.
Il y a aussi des machines de Turing non deterministes qui peuvent avoir
plusieurs instructions possibles pour un couple de (Q,

). La machine
choisit au hasard quelle instruction executer.
13.2.2 Decidabilite.
On introduit les denitions suivantes
Denition 13.2.1. Soit un alphabet et

lensemble des mots sur .


Un langage sur est une partie de

Denition 13.2.2. Soit M une machine de Turing sur lalphabet et q


y
un
etat de M. On dit que M accepte la donnee x (par letat q
y
) si M sarrete
dans letat q
y
lorsque la donnee est x.
Lensemble des mots acceptes par M sappelle le langage reconnu par M que
lon note
L
qy
(M) = L(M)
Le complementaire de L(M) dans

est lensemble des mots pour lesquels


soit M ne sarrete pas soit M sarrete dans un etat ,= q
y
.
Denition 13.2.3. Un probl`eme de decision T appartient ` a la classe P
sil existe une machine de Turing deterministe qui le resoud en un temps
polyomial en fonction de la taille des donnees (i.e. du nombre de symboles de
13.2. TH

EORIE DE LA COMPLEXIT

E 159
apparaissant dans la donnee). Si = 0, 1 alors le probl`eme de decision
appartient ` a la classe P des probl`emes polynomiaux en temps si
x T (
temps
(x) = O(polyn ome en ln
2
(x))
Un probl`eme de decision T appartient ` a la classe NP des probl`emes
non polynomiaux en temps sil existe une machine de Turing non-
deterministe qui le resoud en un temps polynomial
Conjecture 1. P,=NP.
Autrement dit il existe au moins un probl`eme pour lequel on peut mon-
trer quil nexiste pas de machine de Turing deterministe pour le resoudre
en temps polynomial et qui peut etre resolu en temps polynomial par une
machine de Turing non-deterministe.
13.2.3 Complexite algorithmique.
Si on veut executer un algorithme sur une donnee x deux co uts sont `a
envisager.
le co ut en temps (
temps
(x), cest `a dire le nombre doperations ef-
fectuees pour obtenir le resultat nal ou plus formellement le nombre
de deplacements de la tete de lecture/ecriture avant arret de la ma-
chine de Turing modelisant lordinateur.
le co ut en espace, (
espace
(x) est la taille de la memoire utilisee, plus
formellement le nombre de case de la bande ecrite au moins une fois.
On distingue essentiellement deux notions de complexite algorithmique la
complexite polynomiale et la complexite non polynomiale (sous en-
tendu en fonction de la taille des donnees).
Quel est le co ut acceptable pour un probl`eme donne. Il ny a ni reponse
claire ni reponse absolue. En 2000 on estimait que
2
40
operations elementaires est accessible `a un particulier sil est pa-
tient.
2
56
operations elementaires est accessible avec de gros moyens.
2
80
operations elementaires est hors de portee de quiconque.
160 CHAPITRE 13. RAPPELS MATH

EMATIQUES
Rappelons quune annee comporte 3, 2 10
7
secondes.
Soit un algorithme dont le nombre doperations elementaires en fonction
de la taille n de lentree est decrit par la fonction f. On dispose dun
ordinateur faisant 10
9
operations elementaires par secondes. Le temps pris
par lalgorithme suivant les instances de f est:
f ln
2
(n) ln
3
2
(n) n nln
2
(n) n
2
2
n
n = 100 6, 6 10
9
s 4, 4 10
7
s 10
7
s 6, 7 10
7
s 10
5
s 4 10
13
ans
n = 10
5
1, 7 10
8
s 5, 2 10
6
s 10
4
s 1, 7 10
3
s 10 s 10
30086
ans
n = 10
10
3, 3 10
8
s 3, 5 10
5
s 10 s 330 s 3 si`ecles 10
310
9
ans
n = 10
20
6, 6 10
8
s 2, 3 10
4
s 30 si`ecles 10
5
ans 10
23
ans !!!
13.2.4 Algorithmes polynomiaux en fonction de la taille des don-
nees.
On decompose tout algorithme arithmetique en operations elementaires.
Loperation elementaire est laddition de 3 chires en base 2 et le report de
la retenue
retenue +chire 1 +chire 2 = resultat +retenue
Denition 13.2.4. On dit quun algorithme est polynomial en fonc-
tion de la taille des donnees sil peut etre decompose en un nombre
doperations elementaires majore par une fonction polynomiale du nombre
de chires des donnees.
Exemple 13.2.2. Montrons que laddition de deux nombres de tailles k
est une fonction polynomiale de k
1 1 1 1 retenue
1 1 1 1 0 0 0 ligne 1
+ 0 0 1 1 1 1 0 ligne 2
1 0 0 1 0 1 1 0 resultat
On suppose que le plus grand des entiers a k chires. Decomposons la somme
en operations elementaires
13.2. TH

EORIE DE LA COMPLEXIT

E 161
1. Regarder dans la colonne i (1 i k+1) les chires des lignes lignes
1, 2 et retenue
2. Sil y a 0 dans les lignes 1, 2 et retenue mettre 0 dans la ligne
resultat et aller `a la colonne i + 1
3. Sil y a un 0 dans deux des lignes 1 et 2 et retenue on reporte 1
dans la ligne resultat et on passe `a la colonne i + 1
4. Sil y a un 1 dans deux des lignes 1 et 2 et retenue on reporte 0
dans la ligne resultat on met 1 dans la ligne retenue `a la colonne
i + 1 et on passe `a la colonne i + 1
5. Sil y a un 1 dans les 3 lignes 1 et 2 et retenue on reporte 1 dans
la ligne resultat on met 1 dans la ligne retenue `a la colonne i +1 et
on passe `a la colonne i + 1
On admet en premi`ere approximation que le temps necessaire pour faire k
operations elementaires est proportionnel `a k avec une constante dependant
de lordinateur et de limplantation de lalgorithme.
Exemples dalgorithmes polynomiaux en fonction de la taille des entrees:
Laddition de deux entiers n m de longueur k est polynomial en
fonction de la taille des entrees car (en premi`ere approximation) il faut
C k
def
= O(k) = O(log
2
(m)) operations
Ajouter deux entiers de 100 chires en base 10 avec un ordinateur
faisant 10
9
operations par secondes necessite 300 10
9
sec 3sec.
La multiplication de deux entiers n m de taille k et necessite
2 k = O
_
ln
2
2
(m)
_
operations
Multiplier deux entiers de 100 chires en base 10 necessite 90000
10
9
sec 10 sec.
Calcul du PGCD de deux entiers, n m de taille k necessite
O(k
3
) = O
_
ln
3
2
(n)
_
operations
Trouver le PGCD de deux entiers de 100 chires en base 10 necessite
27000000 10
9
0, 027 sec.
162 CHAPITRE 13. RAPPELS MATH

EMATIQUES
Calculer b
m
mod n necessite O
_
ln
3
2
(n)
_
operations.
Decider si un nombre entier n de taille k est premier ou non necessite
O
_
k
6+
_
= O
_
ln
6+
2
(n)
_
operations
Tester si un entier de 100 chires en base 10 est premier necessite
avec lalgorithme polynomial 10
26
sec 10
9
annees. Il y a des
algorithmes pour tester la primalite dun entier non polynomiaux et/ou
non deterministes qui sont plus ecaces pour des nombres pas trop
grands.
le dernier exemple montre que si le polynome est de degre trop eleve ( 3,
un algorithme polynomial peut avoir un co ut prohibitif.
Exemples dalgorithmes non polynomiaux en fonction de la taille des entrees
Calcul de n! = 1 2 . . . (n 1) n, si lon calcule brutalement il faut
environ
C n
2
ln
2
2
n = O(n
2
ln
2
2
n) operations
Calculer
_
10
100
_
! necessite 10
190
sec 10
180
annees!!!
Recherche dun diviseur dun entier n, les meilleurs algorithmes neces-
sitent
0
_
e
C

ln
2
nln
2
ln
2
n
_
operations, C 2
Trouver un diviseur dun nombre de 100 chiffres en base 10 necessite
e
30
10
9
10
5
sec 1, 1jours. Un tel algorithme est dit sous-
exponentiel.
13.3 Rappels darithmetique.
Ainsi quon la vu dans la description des cryptosyst`emes ` a cle publique RSA
et El Gamal, leur principe est base sur de larithmetique elementaire.
13.3.1 La division euclidienne.
Les entiers naturels N = 1, 2, 3 . . . sont munis de deux operations internes
laddition, notee +, et la multiplication, notee ou ou meme sans symbole,
et dune relation dordre total, notee , compatible avec laddition et la
multiplication cest `a dire
_
a, b N, a b
_
= c N; a +c b +c
13.3. RAPPELS DARITHM

ETIQUE 163
_
a, b N, a b
_
= c N; a c b c
On denit sur N la division euclidienne.
Theor`eme 13.3.1. Si a et b sont deux entiers (b ,= 0) il existe un unique
couple dentiers q et r tel que
a = b q +r et
_
ou bien r = 0
ou bien 1 r b 1
Demonstration: On consid`ere lensemble des entiers kb pour k N,. Les axiomes
qui denissent les entiers imposent quil existe necessairemment un entier q tel que
b q a < b (q + 1)
et donc si lon pose a bq = r on a 0 r < b. Nous avons donc montre lexistence dun
couple (q, r) avec 0 r < b tel que a = bq +r. Il reste `a montrer lunicite.
Supposons que nous ayons deux couple (q, r) et (q

, r

) tels que
a = bq +r, 0 r < b
a = bq

+r

, 0 r

< b
alors en soustrayant membre `a membre
0 = b(q q

) + (r r

)
Comme b < rr

< b on en deduit que qq

= 0 et donc que rr

= 0 do` u lunicite.
Denition 13.3.2. Soient a et b des entiers naturels avec b ,= 0. Faire la
division euclidienne de a par b cest trouver lunique couple (q, r) dentiers
naturels (dont lexistence est assuree par le theor`eme 13.3.1) tel que
(13.1) a = b q +r et
_
ou bien r = 0
ou bien 1 r b 1
la relation (13.1) sappelle l egalite de la division euclidienne
On dit que b est un diviseur de a sil existe q N tel que a = bq, on note
a [ b pour dire a divise b.
Tout entier a poss`ede au moins deux diviseurs triviaux 1 et lui-meme car
on a toujours
a = 1 a, a = a 1
Mais il peut en avoir dautres par exemple
6 = 2 3, 28 = 4 7 = 2 2 7 = 2 14
164 CHAPITRE 13. RAPPELS MATH

EMATIQUES
donc 1, 2, 3 et 6 sont des diviseurs de 6 et 1, 2, 4, 7, 14 et 28 sont des
diviseurs de 28.
La division euclidienne implique que Z, les entiers relatifs, est un anneau
euclidien, i.e. quil est muni de deux lois de composition interne laddition
et la multiplication qui possedent certaines proprietes et dune division eu-
clidienne, cf. [28],
1. La loi + est commutative (pour tout (a, b) Z
2
on a a + b = b + a),
associative ( pour tous (a, b, c) Z
3
on a (a +b) +c = a +(b +c), il y
a un element neutre, 0, tel que pour tout a Z on a a+0 = 0+a = a,
tout element a Z poss`ede un oppose b = a tel que a+b = b+a = 0.
2. La loi est commutative (ab = b a), associative ((ab) c = a
(bc)), il y a un element neutre, 1, (a1 = 1a = a), la multiplication
est distributive par rapport `a laddition ((a +b) c = (a c) +(b c)
Dans les entiers naturels on distingue
1 qui est une unite, cest `a dire que 1 poss`ede un inverse pour la
multiplication (il existe b N tel que 1 b = b 1 = 1) qui est 1.
les nombres premiers qui nont pas dautres diviseurs que les di-
viseurs triviaux i. e. 1 et eux-meme (e.g. 2,3,5,7,...,37,....).
Proposition 13.3.3. Un nombre entier n > 0 est premier sil nest divisible
par aucun entier inferieur ou egal ` a

n.
Demonstration: Si n nest pas premier alors par denition on a n = n1n2 avec
ni ,= 1 pour i = 1, 2. Si n1 >

n et n2 >

n alors n1n2 >

n
2
= n ce qui est
absurde.
Proposition 13.3.4. Soit p un nombre premier et a, b deux entiers non
nuls. Si p divise le produit ab alors il divise au moins lun des deux nombres
a ou b.
Demonstration: Supposons que p ne divise pas a. Considerons lensemble c =
|pu +av, u, v Z
2
. Lensemble des entiers strictement positif dans c est non vide donc
admet un plus petit element n0. Montrons que n0 vaut 1. Soit e c. Par la division
euclidienne il existe (q, r) avec 0 r < n0 tel que e = n0q +r. Il nest pas dicile de voir
que r = e n0q est positif et est dans c. Comme n0 est le plus petit element strictement
positif de c, on en deduit que r = 0 et donc que n0 divise tout element de c. En particulier
n0 divise p donc il vaut 1 ou p et n0 divise a donc il ne vaut pas p. Ainsi n0 = 1 et il
existe (u, v) Z
2
tel que 1 = au +pv: cest le theor`eme de Bezout 13.3.10. On ecrit alors
ab = pq puis aub = puv = puv = b(1 pv)
et par consequent p divise b.
13.3. RAPPELS DARITHM

ETIQUE 165
Le theor`eme suivant qui decoule de lexistence de la division euclideienne
est appele le theor`eme fondamental de larithmetique
Theor`eme 13.3.5. Tout nombre entier dierent de 1 poss`ede une unique
decomposition en facteurs premiers ` a lordre pr`es des facteurs, certains fac-
teurs peuvent etre repetes.
Exemple 13.3.1. On a 2 = 2, 4 = 2
2
, 6 = 2 3, 12 = 2
2
3
Demonstration: On raisonne par recurrence. Il est clair que 2 poss`ede une unique
decomposition en facteurs premiers. On suppose que tous les entiers inferieurs strictement
`a n poss`edent une unique decomposition en facteurs premiers (eventuellement reduite
`a un element si le nombre est premier).. Montrons que n aussi poss`ede une unique
decomposition en facteurs premiers.
Si n est premier cest clair, sinon n = a b avec a < n, b < n et donc 1 < a < n et
1 < b < n. Dapr`es lhypoth`ese de recurrence on a
a = p

1
1
p

2
2
. . . p

i
i
, p1, p2 . . . , pi premiers
b = q

1
1
q

2
2
. . . q

j
j
, q1, q2 . . . , qj premiers
et donc
n =

1
1

2
2
. . .

k
k
, r =
8
>
<
>
:
ps,
ou
qt
On a donc montre que n poss`ede une decomposition en facteurs premiers. il reste `a
montrer lunicite.
On suppose que
n = p1p2 . . . pi = q1q2 . . . qj
avec p1, p2, . . . , pi, q1, q2, . . . , qj premiers non necessairement distincts
Comme p1 divise n donc p1 divise le produit q1q2 . . . qj. Dapr`es la proposition 13.3.4
p1 divise necessairement un des facteurs de ce produit. Comme tous les facteurs de ce
produit sont des nombres premiers on en deduit quil existe m tel que p1 = qm. On peut
supposer que m = 1 et donc p1 = q1. On conclut alors par recurrence.
Autrement dit si a N, a 2, alors il existe des nombres premiers p
1
, p
2
,...,
p
n
non necessairement distincts tels que
a = p
1
p
2
p
n
, p
i
premier pour 1 i n
lentier n depend de a. Lunicite `a lordre pr`es des facteurs impose que si
on a une egalite
a = q
1
q
2
q
m
, q
j
premier pour 1 j m
166 CHAPITRE 13. RAPPELS MATH

EMATIQUES
alors necessairement n = m et il existe une permutation des entiers de 1
`a n telle que
p
1
= q
(1)
, p
2
= q
(2)
, . . . , p
n
= q
(n)
.
On peut ecrire la decomposition en facteurs premiers de a N en regroupant
tous les nombres premiers egaux, alors
a = p

1
1
p

2
2
. . . p

avec p
1
< p
2
< < p

, p
i
premier pour 1 i
Lunicite `a lordre pr`es des facteurs impose que si on a une egalite
a = q

1
1
q

2
2
. . . q

k
k
avec q
1
< q
2
< < q
k
, q
j
premier pour 1 j k
alors
= k et
i
=
i
, pour 1 i
Exemple 13.3.2. 10780 = 2
2
5 7
2
, 4200 = 2
3
3 5
2
7 11
Theor`eme 13.3.6. Lensemble des nombres premiers est inni
Demonstration: Si lensemble des nombres premiers etait ni, notons p1,..., pn les
nombres premiers range par ordre croissant. Le nombre
1 +p1p2 . . . pn
est plus grand que pn. Il nest pas premier donc dapr`es le theor`eme 13.3.5 il poss`ede des
diviseur premiers. Or il nest pas divisible par pi pour 1 i n.
13.3.2 Plus Grand Commun Diviseur ou PGCD.
Le plus grand commun diviseur PGCD en fran cais et GCD (Greatest
Common Divisor) en anglais est deni de la mani`ere suivante
Denition 13.3.7. Le plus grand commun diviseur de deux nombres entiers
a et b est le plus grand des entiers qui divisent ` a la fois a et b, on le note
PGCD(a, b) ou a b ou encore (a, b).
Si le PGCD de a et b vaut 1 on dira que a et b sont premiers entre eux
ou sont des nombres relativement premiers
Lensemble
_
d N

d divise a et d divise b
_
est non vide, car 1 divise
toujours a et b, et il est borne par le plus grand des deux entiers a et b, donc
le PGCD existe et de plus il est toujours superieur ou egal ` a 1.
Attention bien distinguer entre nombres relativement premiers et
nombres qui ne se divisent pas.
13.3. RAPPELS DARITHM

ETIQUE 167
Exemple 13.3.3. 35 et 49 ne se divisent pas car 49 = 35 1 + 14 et 35 =
0 49 + 35, mais ils ne sont pas premiers entre eux car 7 divise `a la fois 35
et 49.
Proposition 13.3.8. Le plus grand commun diviseur de a et de b, entiers
naturels, sobtient de la mani`ere suivante. Si
a = p

1
1
p

2
2
. . . p
r
r
, b = p

1
1
p

2
2
. . . p
r
r
, avec
i
,
i
0
sont leur decomposition en facteurs premiers, alors le PGCD de a et de b
est:
a b = p
inf{
1
,
1
}
1
p
inf{
2
,
2
}
2
. . . p
inf r,r
r
Demonstration: Pour la preuve voir [13]
Pour calculer le PGCD ni la denition 13.3.7 ni la proposition 13.3.8 ne sont
ecaces car elles necessitent lune comme lautre de trouver des diviseurs
de a et de b. Or les meilleurs algorithmes connus pour trouver un diviseur
non trivial de a ou pour decomposer a en facteurs premiers ce qui revient
au meme sont en O(e
C

ln
2
(a) ln
2
ln
2
(a)
). Ces algorithmes ne sont donc pas
polynomiaux en temps en fonction de la taille des donnees, leur co ut est pro-
hibitif pour des grands nombres entiers (500 chires en base 10 par exemple)
meme avec des ordinateurs tr`es puissants.
Exemple 13.3.4. Le PGCD de 4200 = 2
3
3 5
2
7 et de 10780 = 2
2
5 7
2
11
est
PGCD(4200, 10780) = 4200 10780 = 2
2
5 7 = 140
Par contre lalgorithme de la division euclidienne fournit gr ace au theor`eme
de Bezout un algorithme tr`es ecace, polynomial en temps en fonction de
la taille des donnees, pour calculer le PGCD de deux entiers naturels.
13.3.3 Algorithme du plus grand commun diviseur ou algorith-
me du PGCD.
Considerons le probl`eme suivant:
Soit a b deux entiers de taille k au plus. Trouver le PGCD a b de a et
de b et evaluer le nombre doperations elementaires necessaires.
168 CHAPITRE 13. RAPPELS MATH

EMATIQUES
Proposition 13.3.9. On ecrit les divisions euclidiennes successives
(13.2)
a = bq
0
+r
1
b = q
1
r
1
+r
2
r
1
= q
2
r
2
+r
3
. . .
.
.
. r
j2
= q
j1
r
j1
+r
j
r
j1
= q
j
r
j
+r
j+1
r
j
= q
j+1
r
j+1
avec 0 r
1
< b, 0 r
2
< r
1
, 0 r
3
< r
2
,..., 0 r
j+1
< r
j
.
On arrete lalgorithme d`es quun reste est nul et alors
a b = r
j+1
Demonstration: En eet la derni`ere identite de division enclidienne de (13.2) mon-
tre que rj+1 divise rj, lavant derni`ere identite de division enclidienne de (13.2) montre
que rj+1 divise rj et rj1. Puis par recurrence on montre que rj+1 divise a et b.
Donc rj+1 est un diviseur commun de a et de b, est-ce le plus grand? Considerons un
diviseur commun de a et de b note d. Par denition d divise a et b donc dapr`es la premi`ere
des identites de division enclidienne de (13.2) on a d [ r1, alors la deuxi`eme des identites
de division enclidienne de (13.2) implique que d [ r2 puis par recurrence on montre que
d [ rj+1.
On a donc montre que tout diviseur d commun de a et de b est un diviseur de rj+1 et
comme rj+1 est un diviseur de a e de b cest le plus grand, autrement dit rj+1 = ab.
Cet algorithme necessite O
_
ln
3
2
(n)
_
operations elementaires.
Exemple 13.3.5. Trouver le PGDCD de 4200 et 10780:
10780 = 2 4200 + 2380; 4200 = 2380 + 1820;
2380 = 1 1820 + 560, 1820 = 3 560 + 140, 560 = 4 140
PGCD(10780, 4200) = 140
Lalgorithme de la division euclidienne donne aussi une version eective
du theor`eme de Bezout, autrement dit une version eective du calcul du
generateur de lideal a, b) engendre par a et b.
Theor`eme 13.3.10 (Theor`eme de Bezout). Soit a et b deux entiers naturels
de PGCD: a b = d. Alors il existe deux entiers relatifs u, v tels que
d = au +bv
u et v sont appeles les coecients de Bezout.
13.3. RAPPELS DARITHM

ETIQUE 169
Demonstration: On reprend lalgorithme du PGCD `a partir de la n. On ecrit
avec les notations precedentes
d = rj+1 = rj1 qjrj = rj1uj1(1) rjvj(qj)
= rj1 qj
`
rj2 qj1rj1

= rj1
`
1 +qjqj1

qjrj2
= uj2(qj)rj2 +rj1vj1(qj1, qj)
=
`
rj3 qj2rj2
`
1 +qjqj1

qjrj2
= rj3
`
1 +qjqj1

rj2

qj2
`
1 +qjqj1

+qj

d = rj3uj3(qj, qj1) rj2vj2(qj2, qj1, qj)


.
.
.
= (1)
j+1
au0(q1, . . . , qj) + (1)
j
bv0(q0, . . . , qj)
On a une relation de recurrence facile sur uj et vj.
uj+1 = uj1 qj+1uj
vj+1 = vj1 qj+1vj
Exemple 13.3.6. Relation de Bezout entre 10780 et 4200:
140 = 1820 3 560 = 1820 3 (2380 1820)
= 4 1820 3 2380 = 4 (4200 2380) 3 2380
= 4 4200 7 2380 = 4 4200 7 (10780 2 4200)
= 18 4200 7 10780 = 75600 75460
Remarque 13.3.1. Le couple (u, v)) tel que au + bv = d = a b dont
lexistence est garantie par le theor`eme de Bezout nest pas unique car si
(u
0
, v
0
) est un tel couple et si (x
1
, y
1
) est une solution en nombres entiers
relatifs de lequation
ax
1
+by
1
= 0
alors on a encore
a(u +x
1
) +b(v +y
1
) = d
Par contre on a unicite au signe pr`es si on impose
1 [u[ b, 1 [v[ a
Algorithme dEuclide.
On donne une version de type programme de lalgorithme dEuclide.
170 CHAPITRE 13. RAPPELS MATH

EMATIQUES
Entree 2 entiers positifs a et b non tous deux nuls
Sortie a b
Tant que b ,= 0 faire
a b := b (a mod b)
si b = 0 retourner a et n
Algorithme dEuclide etendu.
On donne une version recursive de type programme de lalgorithme dEuclide
etendu qui donne les coecients de Bezout pour le PGCD de deux entiers.
1. Entree 2 entiers positifs a et b non tous deux nuls
2. Sortie 3 entiers u, v, d tels que au +bv = a b = d
(a) Variables enti`eres u
1
, v
1
, u
2
, v
2
, u
3
, v
3
, q, r
(b) Si a = 0 retourner (0, 1, b) et n
(c) sinon Au
1
+Bv
1
= a et Au
2
+Bv
2
= b o` u A et B sont les valeurs
initiales de a et b
(d) Faire
(u
1
, v
1
) := (1, 0) (u
2
, v
2
) := (0, 1)
(e) Tant que b ,= 0 faire
(q, r) := quotient et reste de la division euclidienne de a par b
(u
3
, v
3
) := (u
1
qu
2
, v
1
qv
2
)
(u
1
, v
1
, a) := (u
2
, v
2
, b)
(u
2
, v
2
, b) := (u
3
, v
3
, r)
3. si b = 0 retourner (u
1
, v
1
, a).
13.3.4 Les Congruences.
Les cryptosyst`emes RSA et El Gamal reposent sur la theorie des congruences
ou arithmetique modulaire.
13.3. RAPPELS DARITHM

ETIQUE 171
Denition 13.3.11. Soit a, b et m trois entiers. On dit que a est congru
` a b modulo m et on ecrit
a b mod m
si la dierence a b est divisible par m
Une autre mani`ere de dire la meme chose
Corollaire 13.3.12. Soit m un entier non nul, alors a et b sont congrus
modulo m si et seulement si les restes de la division euclidienne de a par m
et de b par m sont les memes
Demonstration: Cest immediat.
Exemple 13.3.7. Prenons m = 2 alors deux entiers a et b sont congrus
modulo 2 sil sont soit tous les deux pairs soit tous les deux impairs.
Prenons m = 5 alors 5 est congru `a 0 modulo 5 (car 5 0 = 5 est divisible
par 5) ou `a 700 modulo 5 (car 5 (700) = 705 est divisible par 5), 3 est
congru `a 2 modulo 5 (car 3 (2) = 5 est divisible par 5) ou `a 38 modulo
5 (car 3 38 = 35 est divisible par 5)
On montre facilement que
Proposition 13.3.13. La relation de congruence est une relation dequi-
valence sur les entiers.
cest `a dire que
a a mod m (reexivite)
a b mod m =b a mod m (symetrie)

_
a b mod m et b c mod m
_
=a c mod m (transitivite)
Demonstration: Cest evident.
Proposition 13.3.14. Laddition et la multiplication sont compatibles ` a la
relation de conguence sur les entiers; autrement dit:
_
_
a (mod m)
_
+
_
b (mod m)
_
(mod m)
_
=
_
a +b (mod m)
_
_
_
a (mod m)
_

_
b (mod m)
_
(mod m)
_
=
_
a b (mod m)
_
Demonstration: Pour la preuve cf. [13]
172 CHAPITRE 13. RAPPELS MATH

EMATIQUES
Exemple 13.3.8. Si m = 2 alors la proposition signie simplement que
la somme de deux nombres pairs est paire, que la somme de deux nombres
impairs est paire, que la somme dun nombre pair et dun nombre impair
est impaire et que le produit de deux nombres pairs est pair, celui de deux
nombres impairs est impair, celui dun nombre pair et dun nombre impair
est pair.
Si m = 5 on constate que
5 + 3 700 2 0 + 38 3 mod 5, 5 3 0 3 5 38 mod 5
On xe m et on decide de ne pas distinguer deux elements congrus modulo
m. Lensemble des elements de Z qui sont congrus modulo m `a un entier xe
sappellera une classe de congruence modulo m. Un element dune classe
de congruence sappelle un representant de la classe de congruence.
Parmi les representant dune classe de congruence, il y en a toujours un,
unique, compris entre 0 et m1.
On notera Z/mZ lensemble des classes de congruence de Z modulo m.
Dapr`es la proposition 13.3.14 on peut munir Z/mZ des deux lois + et
puisque que le resultat modulo m de ces deux operations ne depend pas des
representants choisis dans une classe de congruences.
Corollaire 13.3.15. Tout element de Z/mZ poss`ede un oppose pour laddi-
tion. Les elements de Z/mZ qui ont un inverse multiplicatif sont ceux dont
les representants dans Z sont premiers ` a m.
Demonstration: Facile par Bezout. En eet si a m = 1 alors il existent u, v Z
tels que au + mv = 1 et donc on a au 1 (mod m). Reciproquement si a est inversible
dans Z/mZ alors il existe u N tel que au 1 (mod m) ce qui equivant `a:
Il existe v Z tel que au = 1 +mv ce qui equivaut par Bezout `a a m = 1.
Theor`eme 13.3.16. Si p est premier, lanneau Z/pZ est un corps ni ` a p
elements, cest ` a dire que tout element dierent de la classe de zero poss`ede
un inverse multiplicatif. On le note F
p
.
Demonstration: facile dapr`es le corollaire precedent.
Si p est un nombre premier, on peut montrer que pour chaque entier r 1
il existe un seul corps ni `a q = p
r
elements `a isomorphisme de corps pr`es,
note F
p
r = F
q
. Ils sobtiennent en considerant les quotients
F
q
F
p
[X]/P(x)F
p
[X], P(X) F
p
[X], irreductible, de degre r
cf. la section 13.6. Le theor`eme suivant est du `a C.F. Gauss
13.3. RAPPELS DARITHM

ETIQUE 173
Theor`eme 13.3.17. Si p est premier, le groupe multiplicatif
_
Z/pZ
_

= elements inversibles de
_
Z/pZ,
_

est cyclique, i.e. il existe g premier ` a p tel que


1, . . . , p 1 g
n
, 0 n p 2
Un generateur g du groupe cyclique Z/pZ sappelle une racine primitive
modulo p.
De meme si q = p
r
avec p premier le groupe multiplicatif, F

q
, des elements
inversibles de F
q
est cyclique.
Demonstration: Rappelons que dans un corps K un polynome P(x) K[x] de
degre n 0 a au plus n racines.
Tout element g de F

q
a un ordre d cest `a dire que g
d
= 1 avec d 1 minimal et il y a
(d) elements dordre d. De plus on a
X
d | n
(d) = n
En eet dans (Z/nZ, +) il y a un seul sous-groupe additif dordre d cest lensemble des
elements k
n
d
pour 0 k d 1, note C
d
. On note
d
lensemble des generateurs de
C
d
. Comme tout element de (Z/nZ, +) engendre un des C
d
le groupe (Z/nZ, +) est union
disjointe des
d
et on a
n = Card(Z/nZ, +) =
X
d | n

d
=
X
d | n
(d)
Soit alors d un diviseur de q 1 le cardinal de F

q
. Sil existe x F

q
dordre d le sous-
groupe multiplicatif x) = |1, x, . . . , x
d1
engendre par x est cyclique dordre d et comme
lequation X
d
= 1 a au plus d solutions dans le corps Fq. Donc tout element y tel que
y
d
= 1 appartient `a x).
En particulier les seuls elements dordre d de F

q
sont les generateurs de x) qui sont en
nombre (d). Donc le nombre delements de F

q
dordre d est 0 ou (d). Si cetait 0 pour
un d, la formule n =
P
d | n
(d) montrerait que le nombre delements de F

q
est < q 1, ce
qui est absurde. Il existe donc au moins un element x F

q
dordre q 1 et donc x) = F

q
ce qui equivaut `a F

q
est cyclique.
Le theor`eme suivant joue un r ole extremement important en arithmetique
modulaire et en particulier pour le decodage du cryptosyst`eme RSA, ainsi
que pour la mise en oeuvre du cryptosyst`eme El Gamal
Theor`eme 13.3.18 (petit theor`eme de Fermat). Soit p un nombre premier.
Tout entier a verie la congruence a
p
a (mod p), et si a p = 1 on a
aussi a
p1
1 (mod p).
174 CHAPITRE 13. RAPPELS MATH

EMATIQUES
Exemple 13.3.9. p = 7, a = 3 alors
_
3
6
(mod 7)
_
=
_
3
2+4
(mod 7)
_
=
_
3
2
(mod 7)
__
(3
2
)
2
(mod 7)
_
=
_
2 4 (mod 7)
_
=
_
1 (mod 7)
_
Remarquer la mani`ere de calculer une puissance: ecrire lexposant en base
2 et proceder par elevations au carre successives.
Demonstration: Les elements inversibles de N modulo p plus petits que p sont 1,
2,...,(p1). Considerons a premier `a p donc inversible modulo p et considerons lensemble
|a, 2a, 3a, . . . , (p 1)a mod p
cest une permutation de lensemble |1, 2, . . . , (p1) car a est inversible modulo p. Donc:
a 2a 3a . . . (p 1)a 1 2 3 . . . (p 1) mod p

(a
p1
1)
`
(p 1)!

0 mod p
Comme (p 1)! est premier `a p donc inversible modulo p on a
a
p1
1 mod p
Le theor`eme suivant est appele: Theor`eme des restes chinois
Theor`eme 13.3.19. Soient m
1
, m
2
,...m
r
des entiers naturels deux ` a deux
premiers entre eux (i. e. m
i
m
j
= 1 si i ,= j) et soient a
1
, a
2
,...a
r
des
entiers relatifs. Le syst`eme de congruences
(13.3)
_

_
x a
1
mod m
1
, x a
2
mod m
2
.
.
.
.
.
.
. . . x a
r
mod m
r
a toujours une solution et deux solutions quelconques sont congrus modulo
M = m
1
m
2
. . . m
r
Exemple 13.3.10. Prenons r = 2, m
1
= 15, m
2
= 14, a
1
= 6, a
2
= 9. On
veut donc resoudre simultanement
(13.4) x 6 mod 15 et x 9 mod 14
13.3. RAPPELS DARITHM

ETIQUE 175
La premi`ere equation impose que x est de la forme x = 6 + 15k avec k Z
et la deuxi`eme impose que x est de la forme x = 9 + 14 Z et par
connsequent on doit avoir
6 + 15k = 9 + 14 15k 14 = 3
Comme 1415 = 1 le theor`eme de Bezout indique quil existe (u, v) = (1, 1)
tel que 15u+14v = 1 et donc en prenant k = = 3 on a une solution x = 51
du syst`eme de congruences (13.4)
Demonstration: Unicite (mod M) de la solution au syst`eme de congruences. Si
x1 et x2 sont deux solutions alors x = x1 x2 0 (mod mi) pour 1 i r et donc x 0
(mod M).
Soit Mi =
M
m
i
, clairement Mi mi = 1 donc il existe un entier Ni tel que MiNi 1
(mod mi) et de plus mi [ Mj si i ,= j. Alors
x =
r
X
i=1
aiMiNi = x ai mod mi, 1 i r
Ce theor`eme permet de remplacer un syst`eme de congruences modulo les
m
i
par une congruence unique modulo M = m
1
. . . m
r
.
Corollaire 13.3.20. Avec les notations du theor`eme 13.3.19, le syst`eme de
congruences (13.3)
_

_
x a
1
mod m
1
, x a
2
mod m
2
.
.
.
.
.
.
. . . x a
r
mod m
r
equivaut ` a la congruence unique
y x mod M
Demonstration: Cest evident.
Remarque 13.3.2. Ce corollaire exprime que lon a
r

i=1
Z/m
i
Z Z/MZ
o` u lisomorphisme est un isomorphisme danneaux.
Denition 13.3.21. Si m est un entier positif on note (m) le nombre
dentiers b < m et premiers ` a m, ou de mani`ere equivalente (m) est le
nombre dentiers b < m inversibles modulo m
176 CHAPITRE 13. RAPPELS MATH

EMATIQUES
La fonction est appelee lindicatrice dEuler.
Proposition 13.3.22. Si m = p

1
1
p

2
2
. . . p
r
r
est la decomposition de m en
facteurs premiers distincts alors
(13.5) (m) = p

1
1
1
(p
1
1)p

2
1
2
(p
2
1) . . . p
r1
r
(p
r
1)
Demonstration: Il est clair que (1) = 1, que si p est premier (p) = p 1 et que
(p

) = (p 1)p
1
. Par le theor`eme des restes chinois si m est premier `a n alors
(mn) = (m) (n)
Theor`eme 13.3.23 (Theor`eme dEuler). Soit m > 1 un entier et soit a un
entier premier ` a m, alors on a: a
(m)
1 (mod m)
Demonstration: Meme preuve que pour le petit theor`eme de Fermat
En particulier si p et q sont premiers,
(13.6) (pq) = (p 1)(q 1)
et
(13.7) a
(p1)(q1)
1 mod pq
Il est facile de montrer `a partir du theor`eme dEuler le corollaire important
suivant qui est un cas particulier dun theor`eme de Lagrange, [28],
Corollaire 13.3.24. Soit m N et soit a N tel que a m = 1 alors le
plus petit entier e 1 tel que a
e
1 (mod m) est un diviseur de (m).
Demonstration: Supposons que e ne soit pas un diviseur de (m) et ecrivons
lidentite de la division euclidienne de (m) par e
(m) = e q +r avec 0 < r e 1
on a r ,= 0 car e ne divise par (m). Alors
a
r
= a
varphi(m)eq
= a
(m)
a
eq
= a
(m)
(a
e
)
q
1 mod m
Or comme 1 r e 1 ceci contredit la denition de e.
13.3. RAPPELS DARITHM

ETIQUE 177
Residus quadratiques modulo p.
On va etudier les residus quadratiques modulo un nombre premier p
cest `a dire les carres modulo un nombre premier p. Cette etude joue un
r ole important dans les tests de primalite probabilistes ou non.
Denition 13.3.25 (Symbole de Legendre). On pose si p est premier impair
_
a
p
_
=
_

_
+1 si a est premier ` a p et est un carre (mod p)
1 si a est premier ` a p et nest pas un carre (mod p)
0 si a nest pas premier ` a p
Le symbole
_
a
p
_
est appele le symbole de Legendre.
Cest un caract`ere du groupe multiplicatif (Z/pZ)

`a valeur dans 10
de periode p autrement dit:
_
a
p
__
b
p
_
=
_
ab
p
_
_
a
p
_
=
_
a +p
p
_
Theor`eme 13.3.26 (Euler). Si p est premier impair et a premier ` a p alors
_
a
p
_
a
p1
2
mod p,
_
1
p
_
= (1)
p1
2
,
_
2
p
_
= (1)
p
2
1
8
Demonstration: Pour la demonstration voir [13].
Theor`eme 13.3.27 (Loi de reciprocite quadratique). Soit p et q des
premiers impairs alors
_
q
p
__
p
q
_
= (1)
p1
2

q1
2
Demonstration: Pour la demonstration voir [13].
Ce theor`eme (un des plus cel`ebres de larithmetique) est du `a C. F. Gauss,
il se generalise au symbole de Jacobi ci-dessous. Sa preuve est delicate.
178 CHAPITRE 13. RAPPELS MATH

EMATIQUES
Denition 13.3.28 (Symbole de Jacobi). On pose si m =

p
i
| m
p

i
i
est
impair et n Z
_
n
m
_
=
_

p
i
| m
_
n
p
i
_

i
si m n = 1
1 si m = 1
0 si m n ,= 1
Le symbole de Jacobi poss`ede les proprietes suivantes. Si m est un entier
impair
n
1
n
2
mod m =
_
n
1
m
_
=
_
n
2
m
_
(13.8)
_
2
m
_
=
_
+1 si m 1 (mod 8)
1 si m 3 (mod 8)
(13.9)
_
n
1
n
2
m
_
=
_
n
1
m
__
n
2
m
_
(13.10)
Il verie aussi une loi de reciprocite quadratique: Si m et n sont entiers
impairs:
(13.11)
_
n
m
_
=
_

_
m
n
_
si m n 3 (mod 4)
+
_
m
n
_
sinon
Exercices. 1
13.3.1. Calculer en utilisant la loi de reciprocite quadratique le symbole de
Jacobi
_
7411
9283
_
.
13.4 Tests de primalite.
Pour les cryptosyst`emes `a clef publique on a besoin de disposer de grands
nombres premiers. il est donc important de disposer de methodes rapides
pour dresser des listes de nombres premiers.
Pour tester si n est premier on pourrait essayer de le diviser par tous les
entiers < n, mais dapr`es la proposition 13.3.3, il sut de tester sa divisibilite
13.4. TESTS DE PRIMALIT

E 179
par tous les entiers m <

n. Cette remarque est `a la base de la methode
du crible dEratosthenes. Sil nest divisible par aucun entier <

n il est
premier.
Cette methode est impraticable d`es que n est grand car

n nest pas majore
uniformement par un polynome en ln n.
Le temps de calcul devient vite prohibitif. On a vu en eet quune division
de n par un entier inferieur demande O(ln
3
n) operations elementaires donc
cette methode necessitera
O
_

i=1
ln
3
n
_
= O(

nln
3
n) operations
Ce nest donc pas un algorithme polynomial en temps.
Parmi les tests de primalite certains parmi les plus utilises sont bases sur le
petit theor`eme de Fermat, ou sur les proprietes du symbole de Legendre et
sur la theorie des residus quadratiques.
Agrawal-Kayal-Saxena ont montre en 2002, [1], que le probl`eme decisionnel
n est-il premier?
appartient `a la classe P des probl`eme soluble en temps polynomial en fonc-
tion de la taille des donnees.
Leur preuve fournit des tests de primalite, bases sur le petit theor`eme de
Fermat, qui sont polynomiaux en temps (actuellement en O
_
ln
12
(n)
_
et
meme O
_
ln
6
(n)
_
). Mais pour linstant ils sont moins performants que des
tests probabilistes comme ceux decrits ci-dessous.
Pour tester si n est premier on proc`ede souvent en pratique de la mani`ere
suivante dans les logiciels de calcul formel.
1. Verier que n nest pas divisible par des petits facteurs premiers.
2. Puis pour des a choisis au hasard et tels que 1 a n et a n = 1
calculer a
n1
mod n.
3. Si a
n1
, 1 mod n pour au moins un a alors n nest pas premier.
4. Sinon on ne peut pas conclure (cf. nombres de Carmichael, par exem-
ple 561). On dit que n est pseudo premier.
Pour avoir un resultat s ur on peut utiliser le test de Lucas
180 CHAPITRE 13. RAPPELS MATH

EMATIQUES
Theor`eme 13.4.1 (Lucas). Si a est premier ` a n et si pour tout diviseur
premier p de n 1 on a a
n1
p
, 1 mod n alors n est premier
Demonstration: La preuve de ce resultat est immediate.
Ce resultat nest pas utilisable en pratique car il necessite de decomposer
en facteurs premiers n 1 et actuellement on ne dispose pas dalgorithme
polynomiaux en temps.
On peut aussi utiliser les proprietes des symboles de Legendre et de Jacobi.
Pour tester si n est premier on utilise les remarques suivantes
1. On choisit b premier `a n avec 1 b n1 et on calcule b
n1
2
(mod n).
2. Si n est premier on doit avoir b
n1
2

_
b
n
_
(mod n) pour tout b
(theor`eme 13.3.26 page 177).
3. Si n nest pas premier alors on a b
n1
2
,
_
b
n
_
(mod n) pour au moins
50% des b premiers `a n.
On aboutit ainsi au test de primalite de Solovay-Strassen
1. Tirer un entier aleatoire a, 1 a n 1
2. Si
_
a
n
_
_
a
n1
2
(mod n) n est probablement premier
, a
n1
2
(mod n) n est decomposable
3. Si
_
a
n
_
a
n1
2
(mod n) choisir un autre a et recommencer.
La loi de reciprocite quadratique rend ce test probabiliste tr`es ecace. Elle
evite en eet pour calculer le symbole de Jacobi davoir `a factoriser a et n.
Exemple 13.4.1. Testons la primalite de 547. On choisit a = 5.
On calcule dune part
_
5
547
_
=
_
547
5
_
=
_
2
5
_
= (1)
5
2
1
8
= 1
dautre part
5
5471
2
mod 547 5
1+2
4
+2
8
mod 547 5 113 395 mod 547
1 mod 547
Donc 547 a une chance detre premier. Pour se conforter on recommence
avec 7 au lieu de 5, etc.
13.5. M

ETHODE DE FACTORISATION 181


Actuellement on est capable de prouver la primalite dun nombre sans
symetrie particuli`ere de 2000 `a 3000 chires en base 10 en un mois de CPU
sur une station de travail. On prouve aussi la primalite de nombres tests
comme les nombres de Mersenne (2
p
1) ayant plusieurs millions de chires.
Pour construire de grands nombres premiers on couple les resultats prece-
dents avec des theor`emes sur la repartition des nombres premiers.
On sait par exemple que le nombre de nombres premiers inferieurs `a x,
(x)
x
ln x
. On en deduit quil y a toujours un nombre premier entre n et
2n (en fait on sait plus). On prend un nombre n au hasard et on teste sil
est premier, sil ne lest pas on passe `a n + 1, etc.
13.5 Methode de factorisation.
Principe dun algorithme tr`es utilise pour factoriser de grand nombres en-
tiers, le crible quadratique. Il est fonde sur la proposition suivante
Proposition 13.5.1 (Fermat). Soit n un entier positif impair. Il y a une
bijection entre les decompositions de n sous la forme n = ab avec a b 0
entiers et les representations de n sous la forme n = t
2
s
2
, o` u s et t sont
des entiers positifs ou nuls. La bijection est donnee par les equations
t =
a +b
2
, s =
a b
2
, a = t +s, b = t s
Exemple 13.5.1. Soit `a factoriser n = 23360947609
n = 23360947609 =E(

n) = 152843
On pose t = 152843. On teste sil existe i pas trop grand tel que
(t +i)
2
n = (152843 +i)
2
23360947609
est un carre.
On trouve que pour i = 2 on a
152845
2
23360947609 = 804
2
et donc n = pq avec
_
p = 152845 + 804 = 152649
q = 152845 804 = 152041
. On verie aisement
que p et q sont premiers.
182 CHAPITRE 13. RAPPELS MATH

EMATIQUES
Cette methode ne marche pas `a coup s ur, on la ranee de diverses mani`eres
mais la factorisation dun nombre reste encore un probl`eme dicile.
Dans la proposition precedente on utilise le fait que lon a
t
2
s
2
mod n et t , s mod n
Ces deux relations impliquent que lon trouve alors un diviseur non trivial
de n en calculant PGCD(t +s, n) et PGCD(t s, n). En eet n[ t
2
s
2
et
n,[ t + s, n,[ t s, donc a = PGCD(t + s, n) est un diviseur non trivial de
n et b =
n
a
divise PGCD(t s, n).
Exemple 13.5.2. On veut factoriser 4633. On remarque que
118
2
25
2
mod 4633,
PGCD(118 + 25, 4633) = 41, PGCD(118 25, 4633) = 113
On constate que 4633 = 41 113.
Pour mettre cette remarque en oeuvre on cherche une famille nie de nom-
bres premiers B = p
1
, p
2
, . . . , p
h
, o` u p
1
= 1 et des entiers b
i
tels que le
plus petit representant de (b
2
i
mod n) note b
2
i
(i.e le representant compris
entre
n
2
et +
n
2
1) secrive b
2
i
=

h
j=1
p

j,i
j
avec pour tout j,

j,i
0
(mod 2).
On pose alors

j
=
1
2

j,i
et
b =

i
b
i
mod n, et c =

pB
p

j
Si b , c mod n on a gagne et on a un diviseur de n par la remarque
precedente. Sinon il faut recommencer avec un autre choix pour B ou pour
les b
i
.
La factorisation des entiers reste un probl`eme dicile. En 1994 il a fallu le
travail combine de 600 personnes pendant 8 mois pour factoriser un nombre
de 129 chires propose 17 ans plus tot et pour cela il fallu developper dans
lintervalle de nouvelles methodes de factorisation.
En 1999 il a fallu 8 mois de travail pour factoriser un nombre de 155 chires.
Il a fallu en plus de laugmentation de puissance des ordinateurs developper
et perfectionner de nouvelles methodes de factorisation.
13.6. RAPPELS DALG
`
EBRE 183
En 2005 on a factorise des nombres de 200 chires en base 10 en util-
isant le crible quadratique et 80 ordinateurs travaillant en parall`ele pendant
plusieurs mois.
Pour des generalisations des codes RSA ainsi que pour des procedes de fac-
torisation et des tests de primalite, on utilise larithmetique sur les courbes
elliptiques qui est une sorte de generalisation de larithmetique modulaire .
13.6 Rappels dalg`ebre.
Ainsi quon la vu `a la section 8.5 page 82 la description dAES necessite
celle des extensions de corps nis comme quotient danneaux de polynomes.
13.6.1 Groupes, anneaux, corps
Nous rappelons quelques denition sur les groupes, les anneaux et les corps
on trouvera plus dinformations dans [28].
Denition 13.6.1. Un groupe, G, est un ensemble muni dune loi de
composition interne notee
GG G
(a, b) c = a b
telle que
1. Il existe un element note 1 tel que pour tout a G on a a1 = 1a = a,
il est appele l element neutre pour laddition.
2. Pour tout a G il existe a

G tel que a a

= a

a = 1, a

est note
aussi a
1
, appele l inverse de a
3. Pour tous a, b, c G on a ((a b)) c) = (a (b c)), associativite
Si de plus la loi interne est commutative cest ` a dire que
a b = b a
pour tous a, b G on dit que G est un groupe abelien ou commutatif.
Dans ce cas la loi est souvent notee +, lelement neutre est note 0, et
linverse de a est appele loppose de a et note a.
184 CHAPITRE 13. RAPPELS MATH

EMATIQUES
Denition 13.6.2. Si (G, ) est un groupe l ordre dun element g G
est le plus petit entier n 1 tel que g
n
= 1. Un groupe, (G, ), est cyclique
sil existe un element g G tel que tout element a G soit de la forme g
n
;
autrement dit G est isomorphe ` a (Z, +) ou ` a (Z/mZ, +).
Theor`eme 13.6.3. Si G est un groupe ni de cardinal (on dit aussi dordre)
= [G[ alors lordre de tout element g G est un diviseur de n.
Demonstration: Pour la preuve voir [28]. On a donne une preuve pour les groupes
abeliens au corollaire 13.3.24.
Theor`eme 13.6.4. Un groupe abelien ni est de la forme
Z/m
1
Z Z/m
2
Z Z/m
s
Z
o` u m
i
[ m
i+1
pour 1 i s 1. Les entiers m
i
sont determines de mani`ere
unique.
Denition 13.6.5. Un anneau est un ensemble A muni de deux lois in-
ternes (cest ` a dire des applications de AA dans A). La premi`ere notee +
est appelee addition, la seconde notee multiplicativement, ou , est appelee
multiplication. Laddition determine sur A une structure de groupe abelien.
La multiplication poss`ede les propriete suivantes
1. elle est associative: pour tous a, b, c A on a
((a b) c) = (a (b c))
2. elle est distributive par rapport ` a laddition: pour tous a, b, c A on a
a(b +c) = a b +a c
3. il y a un element unite note 1 tel que a 1 = 1 a = a
4. si la multiplication est commutative, pour tous a, b A a b = b a, on
dit que lanneau est commutatif.
Exemples 13.6.1. Les entiers relatifs Z forment un anneau commutatif.
Si m est un entier naturel non nul les entiers modulo m, Z/mZ, est un
anneau commutatif. Le corps des nombres rationnels, Q, est un anneau
commutatif.
Les polynomes `a coecients rationnels Q[X], resp. reels R[X], resp. com-
plexes C[X], forment un anneau commutatif.
Si K est un corps et P(X) un polynomes non nul de K[X], K[X]/P(X)K[X]
est un anneau commutatif.
13.6. RAPPELS DALG
`
EBRE 185
Denition 13.6.6. Un element a de lanneau A est inversible sil existe
a

A tel que a a

= a

a = 1, a

est l inverse de a.
Exemples 13.6.2. Dans les entiers relatifs Z seuls 1 et 1 sont inversibles,
comme dans tout anneau.
Dans Z/mZ les elements inversibles sont exactement ceux qui proviennent
dentiers premiers `a m.
Dans Q[X], resp. R[X], resp. C[X], les elements inversibles sont les elements
non nuls de Q, resp. R, resp. C.
les elements inversibles de K[X]/P(X)K[X] sont les polynomes premiers `a
P(X).
Denition 13.6.7. Un corps est un anneau dans lequel tout element non
nul, i.e. distinct de lelement neutre pour laddition, a un inverse pour la
multiplication, autrement dit:
Pour tout a ,= 0, il existe a

tel que aa

= a

a = 1.
On remarque que dans un corps 1 ,= 0 et de plus 0a = 0 pour tout element
a du corps, cf. [28].
Exemples 13.6.3. Q, R, C sont des corps.
Z/mZ est un corps si et seulement si m est un nombre premier.
Si K est un corps alors K[X]/P(X)K[X] est un corps si et seulement si
P(X) est un polynome irreductible de K[X].
Denition 13.6.8. Soit K un corps et k un sous-corps. On dit que K est
une extension de k.
Proposition 13.6.9. Soit K un corps et k un sous-corps, alors le corps K
est un espace vectoriel sur le corps k.
Demonstration: Pour la preuve voir [28]
Denition 13.6.10. Soit K un corps et k un sous-corps. On dit que K est
une extension algebrique de k si tout element x K est racine dune
equation algebrique ` a coecients dans k. Autrement dit, si
Pour tout x K il existe un polyn ome non nul P(X) k[X] tel
que P(x) = 0.
Un corps K est algebriquement clos si tout polyn ome de K[X] a au
moins une racine dans K. On appelle cloture algebrique dun corps k
une extension algebrique de k qui est algebriquement close.
186 CHAPITRE 13. RAPPELS MATH

EMATIQUES
Theor`eme 13.6.11. Tout corps k poss`ede une cl oture algebrique K. elle
est unique ` a k-isomorphisme de corps pr`es cest ` a dire que si K

designe
une autre cl oture algebrique de k il existe une bijection
: K K

telle que pour tous x, y de K


(x +y) = (x) +(y)
(1
K
) = 1
K

(xy) = (x)(y)
Demonstration: Pour la preuve cf. [28].
On note souvent

K une cloture algebrique de K.
Denition 13.6.12. Soit K un corps on pose pour m N
c(m) = 1 + 1 + + 1
. .
m fois
o` u laddition est faite dans le corps K.
Sil existe un entier m ,= 0 tel que c(m) = 0, on notera p le plus petit entier
non nul tel que c(p) = 0 et on dira que le corps K est de caracteristique
nie que sa caracteristique est p. Si c(m) ,= 0 pour tout entier m ,= 0 on
dira suivant les auteurs que K est de caracteristique innie ou que K est
de caracteristique zero
Proposition 13.6.13. La caracteristique dun corps est soit innie et si
elle est nie cest necessairement un nombre premier p.
Demonstration: Si K est de caracteristique nie p et si p nest pas un nombre pre-
mier alors il existe des entiers k, > 1 tels que p = k. Par denition de la caracteristique
on c(k) ,= 0, c() ,= 0. Donc c(k) et c() ont des inverses dans K, notes c(k)
1
et c()
1
.
On a alors
[c(k)c(k)
1
][c()c()
1
] = 1
= [c(k)c()][c(k)
1
c()
1
]
= 0 [c(k)
1
c()
1
]
= 0
ce qui est contraire `a 0 ,= 1.
13.6. RAPPELS DALG
`
EBRE 187
Proposition 13.6.14. Si K est un corps de caracteristique p alors
x +x + +x
. .
p fois
= px = 0
Demonstration: Cest evident.
Theor`eme 13.6.15. Si K est un corps de caracteristique p alors pour tous
a, b K on a:
(a +b)
p
n
= a
p
n
+b
p
n
Demonstration: Pour la preuve cf. [28].
13.6.2 Anneaux des polynomes sur un corps
Soit K un corps, par exemple Q, R, C ou un corps ni comme Z/2Z, Z/pZ
avec p premier.
Denition 13.6.16. Lanneau des polyn omes ` a coecients dans K, note
K[X], est lensemble des suites nies delements de K,
P = P(X) = (a
0
, a
1
, . . . , a
n
)
appelees polyn omes. Deux polyn omes
P(X) = (a
0
, a
1
, . . . , a
n
) K[X], Q(X) = (b
0
, b
1
, . . . , b
m
) K[X]
(avec m n) sont egaux si a
i
= b
i
pour 0 i n et b
j
= 0 pour n + 1
j m, en particulier
P(X) = (a
0
, a
1
, . . . , a
n
) = (a
0
, a
1
, . . . , a
n
, 0, 0, . . . , 0)
. .
n+h elements
Considerons les polyn omes
P(X) = (a
0
, a
1
, . . . , a
n
) K[X], Q(X) = (b
0
, b
1
, . . . , b
m
) K[X]
On denit la somme P(X) +Q(X) par
P(X) +Q(X) = R(X) = (c
0
, c
1
. . . , c
n
) =
_
(a
0
+b
0
), (a
1
+b
1
), . . . , (a
n
+b
n
)
_
et le produit P(X) Q(X) = P Q = PQ par
P(X) Q(X) = (d
0
, d
1
. . . , d
m+n
) =
_
(a
0
b
0
), (a
0
b
1
+a
1
b
0
), . . .
. . . , (a
j
b
0
+a
j1
b
1
+ +a
jk
b
k
+ +a
0
b
j
)
. .
avec a

=0 si >n, b

=0 si >m
+ + (a
n
b
m
)
_
188 CHAPITRE 13. RAPPELS MATH

EMATIQUES
Notations 13.6.1. On adopte les notations classiques suivantes
Le polynome (0, 0, . . . , 0) sera note 0 et on a P(X) +0 = 0 +P(X) =
P(X) et 0 P(X) = P(X) 0 = 0. Le polynome (1, 0, 0 . . . , 0) sera
note 1 et on a 1 P(X) = P(X) 1 = P(X).
Le polynome P(X) = (0, 1, 0, . . . , 0) sera note X et appele lindeter-
minee ou la variable.
Le polynome P(X) = (0, 1, 0, . . . , 0) (0, 1, 0, . . . , 0)
. .
n facteurs
sera note
X
n
,
Si P(X) ,= 0 alors il existe un indice n tel que si
P(X) = (a
0
, a
1
, . . . , a
m
)
on ait a

= 0 pour n + 1. Lentier n sera appele le degre du


polyn ome P et sera note deg(P). Le degre du polynome 0 nest pas
deni, on lui donne parfois par convention le degre .
Avec ces notations on ecrira le polynome P(X) = (a
0
, a
1
, . . . , a
n
) de
degre n sous la forme P(X) = a
0
+ a
1
X + a
2
X
2
+ + a
n
X
n
, le
terme a
i
X
i
, 0 i n sera appele le terme de degre i de P(X). On
remarque que lon a aussi P(X) = a
0
+a
1
X + +a
n
X
n
+ 0X
n+1
+
+ 0X
m
Un polynome non nul, P(X), sera dit unitaire si le coecent de son
terme de plus haut degre est 1.
Muni de ces deux operations K[X] est un anneau commutatif unitaire, cf.
[28], muni dune division euclidienne denie de la mani`ere suivante
Denition 13.6.17 (Division euclidienne). Si A(X) et B(X) sont deux
polyn omes de K[X] (B ,= 0) il existe un unique couple de polyn omes Q(X)
et R(X) tel que
A(X) = B(X)Q(X) +R(X) et
_
ou bien R = 0
ou bien 0 deg(R) deg(B) 1
On dit que B(X) est un diviseur de A(X) sil existe Q(X) K[X] tel que
A(X) = B(X)Q(X), on note B(X) [ A(X).
On dit que deux polyn omes non nuls A(X) et B(X) sont associes sil existe
a K

tel que A(X) = a B(X).


13.6. RAPPELS DALG
`
EBRE 189
La notion de divisibilte fournit une relation dordre partielle sur lanneau
des polynomes.
Tout polynome A(X) = a
0
+a
1
X + +a
n
X
n
a au moins comme diviseurs
les elements non-nuls de K et lui-meme car si a ,= 0 K alors a
1
existe et
on a
A(X) = a
_
(a
0
a
1
) + (a
1
a
1
)X + + (a
n
a
1
)X
n
_
, A(X) = 1 A(X)
Mais il peut en avoir dautres par exemple:
X
2
1 = (X 1)(X + 1)
X
2
1 a donc comme diviseurs les constantes non nulles (=K

), les polyno-
mes X1 et X+1 `a une constante multiplicative non nulle pr`es et lui-meme
`a une constante multiplicative non nulle pr`es.
Un polynome, P(X), est appele une unite de K[X] sil est reduit `a un
element de K

= K 0, autrement dit si P
1
existe dans K[X]
Denition 13.6.18. Un polyn ome P(X) K[X] est appele un polynome
premier ou polynome irreductible si ses seuls diviseurs sont lui-meme
et les elements de K

Exemple 13.6.4. Dans Q[X] le polynome X


2
+1 est irreductible, par contre
dans F
2
[X] il ne lest pas car sur F
2
on a X
2
+ 1 = (X + 1)
2
.
Proposition 13.6.19. Tout polyn ome non nul A(X) K[X] poss`ede une
decomposition en un produit de polynomes premiers
A(X) = a P
1
(X)P
2
(X) . . . P
m
(X)
o` u a K

, P
j
(X) premier pour 1 j m
Cette decomposition est unique ` a lunite a pr`es et ` a lordre pr`es des facteurs
P
j
. Si lon regroupe tous les polyn omes P
j
associes, la decomposition en
produit de polyn omes premiers prend la forme suivante
A(X) = a P
1
(X)

1
P
2
(X)

2
. . . P

(X)

,
i
N,
o` u a K

, P
j
(X) premier pour 1 j ,
P
i
et P
j
ne sont pas associes pour i ,= j
sous cette forme la decomposition est unique ` a lordre des facteurs si on
choisit les P
j
unitaires et les
i
1 (cest ` a dire quon sinterdit des ex-
posants nuls).
190 CHAPITRE 13. RAPPELS MATH

EMATIQUES
Demonstration: La preuve repose sur lalgorithme de division euclidienne, cf. [28].
On denit alors comme dans le cas de Z la notion de Plus Grand Commun
Diviseur (PGCD) de deux polynomes. Les degres des diviseurs unitaires
communs `a A et B forment un ensemble majore par le maximum des degres
de A et de B.
Denition 13.6.20. Le PGCD de deux polyn omes A(X) et B(X) de K[X]
est le polyn ome unitaire de plus grand degre D(X) qui divise ` a la fois A(X)
et B(X). On note PGCD(A, B) = A B
Proposition 13.6.21. Soient A(X) et B(X) des polyn omes non nuls. On
peut toujours supposer, quitte ` a modier les unites a et b et ` a utiliser des
exposants, que leurs decomposition en produit de facteurs premiers unitaires
est
A(X) = a P
1
(X)

1
P
2
(X)

2
. . . P
r
r
,
B(X) = b P
1
(X)

1
P
2
(X)

2
. . . P
r
(X)
r
, avec
i
,
i
0
alors le PGCD de A et de B est:
A(X) B(X) = P
1
(X)
inf {
1
,
1
}
P
2
(X)
inf {
2
,
2
}
. . . P
r
(X)
inf r,r
Demonstration: Pour la demonstration voir [28].
Ni la denition ni la proposition 13.6.21 ne fournissent dalgorithmes tr`es
ecaces pour calculer le PGCD de deux polynomes, A(X) et B(X).
Par contre lalgorithme de la division euclidienne en fournit un tr`es ecace.
Proposition 13.6.22. Le PGCD des polyn omes A et B est donne par lalgo-
rithme suivant. On ecrit les divisions euclidiennes successives
(13.12)
_

_
A(X) = Q
0
(X)B(X) +R
1
(X)
B(X) = Q
1
(X)R
1
(X) +R
2
(X)
R
1
(X) = Q
2
(X)R
2
(X) +R
3
(X)
.
.
.
R
j2
(X) = Q
j1
(X)R
j1
(X) +R
j
(X)
R
j1
(X) = Q
j
(X)R
j
(X) +R
j+1
(X)
R
j
(X) = Q
j+1
(X)R
j+1
(X)
13.6. RAPPELS DALG
`
EBRE 191
avec (0 deg(R
1
) < deg(B) ou R
1
= 0), (0 deg(R
2
) < deg(R
1
) ou
R
2
= 0), 0 deg(R
3
) < deg(R
2
),..., 0 deg(R
j
) < deg(R
j+1
).
On arrete lalgorithme d`es quun reste est nul et alors
A(X) B(X) = R
j+1
(X)
Demonstration: La derni`ere identite de division enclidienne de (13.12) montre que
Rj+1 divise Rj, lavant derni`ere identite de division enclidienne de (13.12) montre que
Rj+1 divise Rj et Rj1. Puis par recurrence on montre que Rj+1 divise A et B.
Donc Rj+1 est un diviseur commun de A et de B, est-ce le plus grand? Considerons un
diviseur commun de A et de B note D. Par denition D divise A et B donc dapr`es la
premi`ere des identites de division enclidienne de (13.12) on a D[ R1, alors la deuxi`eme
des identites de division euclidienne de (13.12) implique que D[ R2 puis par recurrence on
montre que D[ Rj+1.
On a donc montre que tout diviseur D commun de A et de B est un diviseur de Rj+1
et comme Rj+1 est un diviseur de A et de B cest le plus grand, autrement dit Rj+1 =
A B.
Larithmetique de K[X] est donc tout `a fait parall`ele `a celle de Z.
Les deux sont des anneaux munis dune division euclidienne.
On denit sur K[X] une notion de factorisation en facteurs premiers,
On peut denir le PGCD de deux polynomes,
Il y a sur K[X] une relation de Bezout, un algorithme dEuclide etendu
pour calculer le PGCD.
etc..
On a le theor`eme de Bezout comme dans le cas des entiers
Theor`eme 13.6.23 (Theor`eme de Bezout). Soit A(X), B(X) K[X], alors
il existe des polyn omes U(X), V (X) K[X] tels que
(13.13) A(X)U(X) +B(X)V (X) = A(X) B(X) = D(X)
Demonstration: La preuve est la meme que sur Z. On reprend lalgorithme du
PGCD (13.12) `a partir de la n. On ecrit avec les notations precedentes
D = Rj+1 = Rj1 QjRj = Rj1Uj1(1) RjVj(Qj)
= Rj1 Qj
`
Rj2 Qj1Rj1

= Rj1
`
1 +QjQj1

QjRj2
= Uj2(Qj)Rj2 +Rj1Vj1(Qj1, Qj)
192 CHAPITRE 13. RAPPELS MATH

EMATIQUES
=
`
Rj3 Qj2Rj2
`
1 +QjQj1

QjRj2
= Rj3
`
1 +QjQj1

Rj2

Qj2
`
1 +QjQj1

+Qj

d = Rj3Uj3(Qj, Qj1) Rj2Vj2(Qj2, Qj1, Qj)


.
.
.
= (1)
j+1
aU0(Q1, . . . , Qj) + (1)
j
bV0(Q0, . . . , Qj)
On a une relation de recurrence facile sur Uj et Vj.
Uj+1 = Uj1 Qj+1Uj
Vj+1 = Vj1 Qj+1Vj
On denit alors les congruences entre polynomes comme dans le cas des
entiers
Denition 13.6.24. Si P(X) K[X] et si A(X), B(X) appartiennent ` a
K[X] on dit que A et B sont congrus modulo P sil existe Q K[X]
tel que A B = PQ. On ecrira A B mod P et on dira que A et B
appartiennent ` a la meme classe dequivalence modulo P.
On verie aisement que cest une relation dequivalence sur lanneau des
polynomes qui est compatible aux operations sur les polynomes.
Proposition 13.6.25. Soit P(X) K[X] de degre f 0, alors tout
polyn ome A(X) K[X] poss`ede un unique representant dans sa classe
dequivalence modulo P(X) unitaire et de degre f 1. Autrement dit
pour tout polyn ome A(X) K[X] il existe un unique polyn ome unitaire
R(X) K[X] de degre f 1 tel que A(X) R(X) mod P(X).
Demonstration: Utiliser la division euclidienne.
Proposition 13.6.26. Laddition et la multiplication sont compatibles ` a
la relation de congruence sur les poly omes; autrement dit si P(X) est un
polyn ome xe et si A(X), B(X) K[X] alors
_
_
A(X) (mod P(X))
_
+
_
B(X) (mod P(X))
_
(mod P(X))
_
=
_
A(X) +B(X) (mod P(X))
_
_
_
A(X) (mod P(X))
_

_
B(X) (mod P(X))
_
(mod P(X))
_
=
=
_
A(X) B(X) (mod P(X))
_
Demonstration: Pour la preuve cf. [28]
13.6. RAPPELS DALG
`
EBRE 193
Proposition 13.6.27. Soit P(X) K[X], lensemble des classes dequiva-
lence modulo P(X) est note
K[X]/P(X)K[X] ou K[X]/(P)
Cest un anneau commutatif unitaire et cest un corps si et seulement si P
est irreductible dans K[X].
Demonstration: Pour la premi`ere partie cf. [28]. Si P est irreductible alors par
denition si A(X) , 0 (mod P(X)) on a A(X) P(X) = 1. Donc dapr`es le theor`eme de
Bezout, il existe U(X), V (X) K[X] tels que
A(X)U(X) +P(X)V (X) = 1
et donc
A(X)U(X) 1 mod P(X)
Donc si P(X) est irreductible tout element non nul de K[X]/P(X) poss`ede un inverse
multiplicatif, autrement dit cest un corps.
Proposition 13.6.28. Un syst`eme complet de representants de
K[X]/P(X)K[X]
est lensemble des restes de la division euclidienne des polyn omes de K[X]
par P(X).
Demonstration: Cest immediat.
Si K est un corps ni, F
p
, et si P est un polynome irreductible sur F
p
alors
F
p
[X]/P(X) est un corps ni qui contient F
p
. Sur tout corps ni il y a des
polynomes irreductibles de degre n pour tout n, [28].
Exemple 13.6.5. Sur F
2
le polynome P = X
2
+X+1 est irreductible car il
nest divisible par aucun polynome de degre 1. En eet les seuls polynomes
de degre 1 de F
2
[X] sont X et X + 1 = X 1 et il est clair que dans F
2
[X]
les equations
X
2
+X + 1 = X(X +b), X
2
+X + 1 = (X + 1)(X +b)
nont pas de solution.
Donc F
2
[X]/(X
2
+X+1) est un corps note F
4
dont on va donner les elements
F
4
= F
2
[X]/(X
2
+X + 1) =
_
0, 1, X, X + 1
_
Rappelons que dans F
2
on a 0 + 0 = 1 + 1 = 0, 0 + 1 = 1 + 0 = 1,
0 0 = 0 1 = 0 0 = 0 et 1 1 = 1 et donc que dans F
2
, 1 = 1 et
1 + 1 = 2 = 0.
194 CHAPITRE 13. RAPPELS MATH

EMATIQUES
Laddition sur F
4
est donnee par la table suivante
+ 0 1 X X + 1
0 0 1 X X + 1
1 1 0 X + 1 X
X X X + 1 0 1
X + 1 X + 1 X 1 0
Cette table est evidente.
La multiplication sur F
4
est donnee par la table suivante
0 1 X X + 1
0 0 0 0 0
1 0 1 X X + 1
X 0 X X + 1 1
X + 1 0 X + 1 1 X
Les seules choses `a montrer sont
X X = X
2
X + 1 mod X
2
+X + 1
X (X + 1) = X
2
+X 1 mod X
2
+X + 1
(X + 1) (X + 1) = (X + 1)
2
X mod X
2
+X + 1
Donc dans F
4
linverse multiplicatif de X + 1 est X.
Le theor`eme des restes chinois se generalise sans diculte `a K[X] avec la
meme preuve.
Corollaire 13.6.29. Si p est un nombre premier et si P(x) est un polyn ome
irreductible de degre f de F
p
[X] alors F
p
[X]/(P) est le corps ni F
q
` a q = p
f
elements. En particulier si p = 2 et P(X) = X
8
+ X
4
+ X
3
+ X + 1 alors
F
2
[X]/(P) est le corps ni ` a 2
8
= 256 elements.
Demonstration: Il sut de remarquer que Fp[X]/(P) est un Fp espace vectoriel
dont une base est constituee des classes de 1, X,..., X
i
,..., X
f1
, et donc le cardinal de
Fp[X]/(P) est p
f
= q.
On a vu que F

q
est un groupe multiplicatif cyclique `a q 1 elements. On
peut donc considerer des cryptosyst`emes El Gamal utilisant le groupe F

q
,
par exemple
13.6. RAPPELS DALG
`
EBRE 195
Exemple 13.6.6. Considerons p = 3, on montre facilement que le polynome
P(X) = X
3
X + 1 est un polynome irreductible de F
3
[X]. En eet sinon
on aurait necessairement une decomposition
X
3
X + 1 = (X +a)(X
2
+bX +c), avec a, b, c F
3
Z/3Z
avec un facteur de degre 1 au moins. Autrement dit le polynome P(X)
aurait au moins une racine dans F
3
, or on verie aisement avec le petit
theor`eme de Fermat que
P(0) = P(1) = P(2) = 1
Donc F
3
[X]/(X
3
X + 1) nest autre que le corps F
3
3 `a 27 elements.
On a vu que son groupe multiplicatif F

3
3
est cyclique. Trouvons un gene-
rateur g sous forme polynomiale. Montrons que que la classe de X modulo
X
3
X + 1 engendre F

3
3
.
Il sut pour cela de donner le tableau (ci-dessous) des puissances successives
de X (mod X
3
X + 1). On prend comme syst`eme de representant de F
3
,
0, 1, 2 (en fait dapr`es le theor`eme de Lagrange 13.6.3 ou le corollaire
13.3.24 il sut de verier que X
13
,= 1 (mod X
3
X + 1)).
i 0 1 2 3
X
i
1 X X
2
X + 2
i 4 5 6 7
X
i
X
2
+ 2X 2X
2
+X + 2 X
2
+X + 1 X
2
+ 2X + 2
i 8 9 10 11
X
i
2X
2
+ 2 X + 1 X
2
+X X
2
+X + 2
i 12 13 14 15
X
i
X
2
+ 2 2 2X 2X
2
i 16 17 18 19
X
i
2X + 1 2X
2
+X X
2
+ 2X + 1 2X
2
+ 2X + 2
i 20 21 22 23
X
i
2X
2
+X + 1 X
2
+ 1 2X + 2 2X
2
+X
i 24 25 26
X
i
2X
2
+ 2X + 1 2X
2
+ 1 1
196 CHAPITRE 13. RAPPELS MATH

EMATIQUES
Exercices.
13.6.1. On pose F
5
= Z/5Z. Trouvez linverse multiplicatif de X
3
+3X 1
modulo X
5
+X + 1 consideres comme des polynomes de F
5
[X].
13.6.2. On consid`ere le corps `a 3 elements Z/3Z que lon notera F
3
. On
peut le representer par les 3 entiers 0, 1, 2 muni des lois daddition et de
multiplication modulo 3.
1. Montrer que le polynome P(X) = X
3
+2X
2
+1 F
3
[X] est irreductible
et donc que F
3
[X]/(P) est un corps.
2. Montrer que F
3
[X]/(P) contient 27 elements que lon peut representer
par les polynomes de degre inferieur ou egal `a 2 de F
3
[X]. On notera
F
27
le corps F
3
[X]/(P).
3. Montrer que
X
3
= X
2
+ 2 dans F
27
_
X
3
X
2
+ 2 mod (X
3
+ 2X
2
+ 1)F
3
[X]
_
X
4
= X
3
+ 2X = X
2
+ 2X + 2 dans F
27
X
5
= x
3
+ 2X
2
+ 2X = 2X + 2 dans F
27
4.

Ecrire les puissances successives de X pour des exposants allant de 0
`a 26. Deduisez-en que la suite n x
n
est periodique de periode 26
dans F
27
et que tout element non nul de F
27
est representable dune
et une seul mani`ere par une puissance de x (autrement dit le groupe
multiplicatif des elements non nuls de F
27
est cyclique).
5. Comme F
27
0 = F

27
contient 26 elements on peut coder les 26
lettres de lalphabet par un element et un seul de F

27
de la mani`ere
suivante
A 1 B 2 C x D x + 1
E x + 2 F 2x G 2x + 1 H 2x + 2
I x
2
J x
2
+ 1 K x
2
+ 2 L x
2
+x
M x
2
+x + 1 N x
2
+x + 2 O x
2
+ 2x P x
2
+ 2x + 1
Q x
2
+ 2x + 2 R 2x
2
S 2x
2
+ 1 T 2x
2
+ 2
U 2x
2
+x V 2x
2
+x + 1 W 2x
2
+x + 2 X 2x
2
+ 2x
Y 2x
2
+ 2x + 1 Z 2x
2
+ 2x + 2
Montrer que lon peut alors utilser F

27
pour construire un syst`eme El
Gamal avec pour generateur g = x et exposant = 11.
On code avec ce cryptosyst`eme lettre `a lettre : `a quelles lettres corre-
spondent les couples (y
1
, y
2
) = (K, H), (y
1
, y
2
) = (F, A).
13.7. COURBES ELLIPTIQUES 197
13.7 Courbes elliptiques.
Les courbes elliptiques denies sur un corps K sont des courbes decrites
par lensemble des solutions de certaines equations polynomiales `a deux
inconnues f(x, y) K[X, Y ]. Pour plus de precisions on pourra consulter
[31] ou [33].
Denition 13.7.1. Soit R le corps des reels et soit a, b R tels que
(a, b) = 4a
3
+ 27b
2
,= 0. Une courbe elliptique non singuli`ere denie
sur R est lensemble E des points P de R
2
dont les coordonnees (x, y) sont
des solutions de lequation
y
2
= x
3
+ax +b
plus un point special, note O ou , appele le point `a linni.
La condition 4a
3
+ 27b
2
,= 0 assure que la courbe est sans point double. Si
4a
3
+ 27b
2
= 0 on a aaire `a une courbe singuli`ere.
Exemple 13.7.1. La courbe y
2
= x
3
4x est une courbe elliptique car
(4, 0) ,= 0, voir la gure 13.1 page 199.
13.7.1 Groupe des points dune courbe elliptique
Si E est une courbe elliptique non-singuli`ere on denit sur les points de
E une addition notee + qui fera de lensemble des points de E un groupe
abelien.
P E, par denition P +O = O +P = P.
Si P, Q E avec P = (x
1
, y
1
), Q = (x
2
, y
2
) on consid`ere les 3 cas
1. x
1
,= x
2
2. x
1
= x
2
et y
1
= y
2
3. x
1
= x
2
et y
1
= y
2
Dans le cas 1, on note L la droite passant par P et Q. Elle
coupe E en 3 points dont deux, P et Q, sont dej`a connus, on
note R

= (x

, y

) le troisi`eme point dintersection. On prend le


symetrique de R

par rapport `a laxe des abscisses. On obtient


un point R = (x

, y

) = (x, y) qui est encore sur E. On pose


par denition
P +Q = R
198 CHAPITRE 13. RAPPELS MATH

EMATIQUES
Par un calcul sans myst`ere on trouve lequation de L
y = x + =
_
y
2
y
1
x
2
x
1
_
x +
_
y
1

y
2
y
1
x
2
x
1
x
1
_
on obtient alors les coordonnees de R
x =
2
x
1
x
2
= (
y
2
y
1
x
2
x
1
_
2
x
1
x
2
y = (x
1
x
2
) y
1
= (
y
2
y
1
x
2
x
1
_
(x
1
x
2
) y
1
Dans le cas 2, on denit si P = (x, y) E, P = (x, y)
(x, y) + (x, y) = O
Le cas 3 se ram`ene au cas 2 en considerant que la droite L est la
tangente en P `a E. On trouve que lequation de L est
y = x + =
_
3x
2
1
+a
2y
1
_
x +
_
y
1

_
3x
2
1
+a
2y
1
_
x
1
_
ensuite le calcul de R est identique.
On montre que la loi ainsi denie est
1. stable sur E: si P et Q appartiennent `a E, P +Q E
2. associative: P, Q et R appartiennent `a E alors (P + Q) + R = P +
(Q +R)
3. commutative: P +Q = Q+P
4. poss`ede un element neutre, O: P +O = O +P = P
5. Chaque point de E admet un oppose pour cette addition: P
E Q E tel que P +Q = O
Cette loi fait donc des points de E denis sur K un groupe abelien.
Tout ceci est resume par les gures 13.1 et 13.2:
On remarque que les formules donnant les coordonnees de la somme de deux
points P et Q sur la courbe elliptique E sont des fonctions rationnelles `a
coecients dans Z de leurs coordonnees.
13.7. COURBES ELLIPTIQUES 199
Figure 13.1: courbe elliptique sur R, y
2
= x
3
4x
200 CHAPITRE 13. RAPPELS MATH

EMATIQUES
Figure 13.2: courbe elliptique sur R, y
2
= x
3
+ 17
13.7. COURBES ELLIPTIQUES 201
Cette remarque montre que lappartenance des coordonnees de P et Q `a R
ne joue aucun r ole. Ce qui importe est de pouvoir eectuer des additions,
multiplications, soustraction, division des coordonnees. Autrement dit on
peut denir la somme de deux points sur une courbe elliptique d`es que leurs
coordonnees appartiennent `a un corps.
Denition 13.7.2. Soit K un corps et E une courbe elliptique denie sur
le corps K, cest ` a dire que lequation y
2
= x
3
+ax +b qui denit la courbe
elliptique est ` a coecients dans K, a, b K, et (a, b) = 4a
3
+ 27b
2
,= 0.
On note E(K) lensemble des couples (x, y) K
2
tels que y
2
= x
3
+ax +b.
On verie aisement que si P et Q appartiennent `a E(K) cest `a dire que leurs
coordonnees appartiennent `a K et verient lequation de la courbe alors les
coordonnees de R = P + Q appartiennent `a K et verifent aussi lequation
y
2
= x
3
+ax +b.
Exemple 13.7.2. La courbe y
2
= x
3
4x peut etre consideree comme une
courbe elliptique sur Q, R, C, mais aussi sur le corps ni F
p
pour p premier,
p ,= 2. En eet (4, 0) = 2
8
qui est dierent de zero dans Q, R, C et F
p
pour p premier, p ,= 2.
13.7.2 Endomorphismes dune courbe elliptique
Soit K un corps et E une courbe elliptique denie sur K et soit

K une
cloture algebrique de K.
Denition 13.7.3. Un endomorphisme dune courbe elliptique E
denie sur K est un homomorphisme de la courbe
: E(

K) E(

K)
qui est donne par des applications rationnelles.
Autrement dit est une application de E(

K) dans lui-meme telle que
(P
1
+P
2
) = (P
1
) +(P
2
), pour tous points P
1
, P
2
E(

K)
et il existe des fonctions rationnelles R
1
(x, y) et R
2
(x, y) ` a coecients dans
E(

K) telles que
(x, y) =
_
R
1
(x, y), R
2
(x, y)
_
pour tout P = (x, y) E(

K).
202 CHAPITRE 13. RAPPELS MATH

EMATIQUES
Exemple 13.7.3. Soit E dequation y
2
= x
3
+ ax + b et soit (P) = 2P.
Alors est un homomorphisme et
(x, y) =
_
R
1
(x, y), R
2
(x, y)
_
avec
R
1
(x, y) =
_
3x
2
+a
2y
_
3
2x
R
2
(x, y) =
_
3x
2
+a
2y
__
3x
_
3x
2
+a
2y
_
2
_
y
et donc est un endomorphisme de E.
On montre que tout endomorphisme de E peut secrire sous la forme
(x, y) =
_
r
1
(x), r
2
(x)y
_
o` u r
i
(x) est une fonction rationnelle. on posera
r
1
(x) =
p(x)
q(x)
, p(x) q(x) = 1
Le degre de est deni par
deg() = maxdeg p(x), deg q(x)
On dira que est separable si r

1
(x) nest pas identiquement nul.
Si K = F
q
avec q = p
n
est le corps ni `a q elements et si E est une courbe
elliptique denie sur K il y a un endomorphisme important: lendomor-
phisme de Frobenius
q

q
(x, y) =
_
x
q
, y
q
_
, (x, y) E(

K)
Il nest pas separable, il est de degre q
13.7.3 Courbes Elliptiques sur un corps ni
Dapr`es la remarque precedente le fait que le corps de base soit R ne joue
pas un grand r ole dans les calculs precedents (sauf pour pouvoir dessiner les
courbes).
Si maintenant on a un corps ni F
q
o` u q = p
f
avec p un nombre premier on
peut refaire la theorie en supposant que lon cherche des solutions dans F
2
q
(on peut prendre F
p
= Z/pZ).
13.7. COURBES ELLIPTIQUES 203
Denition 13.7.4. Soit F
q
un corps ni avec p 5 et soit a, b F
q
tels
que 4a
3
+ 27b
2
,= 0. Une courbe elliptique non singuli`ere denie sur
F
q
est lensemble E = E(F
q
) des points P de F
2
q
dont les coordonnees (x, y)
sont des solutions de lequation
y
2
= x
3
+ax +b
plus un point special O appele point ` a linni.
Les points de E(F
q
) sont appeles les points denis sur F
q
de la courbe
elliptique E.
Exemple 13.7.4. Calculons par exemple les points de la courbe elliptique
y
2
= x
3
+x + 6 dans F
11
x x
3
+x + 6 mod 11 residu quadratique? y
0 6 non
1 8 non
2 5 oui 4,7
3 3 oui 5,6
4 8 non
5 4 oui 2,9
6 8 non
7 4 oui 2,9
8 9 oui 3,8
9 7 non
10 4 oui 2,9
Cette courbe sur F
11
admet 13 points y compris celui `a linni.
Comme lensemble E(F
q
) des points denis sur F
q
de la courbe elliptique
E est un sous ensemble de F
2
q
cest un ensemble ni. Le cardinal de cet
ensemble est soumis `a des limitations sev`eress. On a le theor`eme important
Theor`eme 13.7.5 (Hasse). Soit p un nombre premier superieur ` a 3 et soit
q = p
f
. Soit E une courbe elliptique denie sur le corps ni F
q
. On note
#E le nombre de points de E denis sur F
q
. On a
q + 1 2

q #E q + 1 + 2

q
Le calcul de #E est dicile mais il existe un algorithme performant pour le
faire lalgorithme de Schoof.
204 CHAPITRE 13. RAPPELS MATH

EMATIQUES
Pour pouvoir utiliser le groupe des points dune courbe elliptique sur un
corps ni, E, il faut ensuite trouver un sous-groupe cyclique aussi gros que
possible an de pouvoir transposer le schema de codage El-Gamal. Il y a
des algorithmes ecaces pour cela.
Avec des sous-groupes cycliques de E `a 2
160
elements on a une tr`es bonne
securite si lon prend quelques precautions pour eliminer des courbes el-
liptiques indesirables pour lesquelles le probl`eme du logarithme discret est
facile.
Lavantage des cryptosyst`emes bases sur les courbes elliptiques est, entre
autre, la possibilite davoir des cles courtes pour une bonne securite.
13.7.4 Points de torsion sur une courbe elliptique
Soit E une courbe elliptique denie sur un corps K et soit

K une cloture
algebrique de K. Soit n un entier positif. on note
E[n] =
_
P E(

K)

nP = P +P + +P
. .
n fois
= O
_
Exemple 13.7.5. Prenons y
2
= x
3
+ax +b lequation de la courbe E. On
peut ecrire
y
2
= (x e
1
)(x e
2
)(x e
3
), e
i


K
un point P est de 2-torsion si 2P = O autrement dit si la tangente en P est
verticale ce qui equivaut `a y = 0. Donc
E[2] =
_
O, (e
1
, 0), (e
2
, 0), (e
3
, 0)
_
On a le theor`eme suivant qui decrit E[n]
Theor`eme 13.7.6. Soit E une courbe ellitique sur un corps K et soit n un
entier positif. Si la caracteristique de K ne divise pas n ou est inni, alors
E[n] Z/nZ Z/nZ
Si la caracteristique de K est p > 0 et si p [ n on ecrit n = p
r
n

avec
p n

= 1. Alors
E[n]
_

_
Z/n

Z Z/n

Z
ou
Z/nZ Z/n

Z
Demonstration: Pour la preuve voir [33].
13.7. COURBES ELLIPTIQUES 205
13.7.5 Laccouplement de Weil
Laccouplement de Weil est un outil essentiel pour letude des courbes ellip-
tiques et aussi pour les crypto-syst`emes elliptiques ainsi que pour le chire-
ment base sur lidentite.
Soit K un corps et E une courbe elliptique denie sur K et soit n un entier
premier `a la caracteristique de K. Alors E[n] Z/nZ Z/nZ. Soit

n
=
_
x

K [ x
n
= 1
_
le groupe des racines ni`emes de lunite dans

K. Un generateur de
n
est
appele une racine primitive n-i`eme de lunite. On a le theor`eme suivant
Theor`eme 13.7.7. Soit K un corps et E une courbe elliptique denie sur
K et soit n un entier premier ` a la caracteristique de K. Alors il existe un
accouplement (cest ` a dire une forme bilineaire non degeneree)
e
n
: E[n] E[n]
n
appele l accouplement de Weil qui verie les proprites suivantes:
1. e
n
est bilineaire par rapport ` a chacune des variables, cest ` a dire que
e
n
(S
1
+S
2
, T) = e
n
(S
1
, T)e
n
(S
2
, T)
e
n
(S, T
1
+T
2
) = e
n
(S, T
1
)e
n
(S, T
2
)
pour tous S, S
1
, S
2
, T, T
1
, T
2
E[n]
2. e
n
est non degeneree par rapport ` a chaque variable, cest ` a dire que
e
n
(S, T) = 1 pour tout T E[n] =S = O
e
n
(S, T) = 1 pour tout S E[n] =T = O
3. e
n
(T, T) = 1 pour tout T E[n]
4. e
n
(S, T) = e
n
(T, S)
1
pour tout S, T E[n]
5. e
n
((S), (T)) =
_
e
n
(S, T)
_
pour tout automorphisme de

K qui
laisse invariant les coecients de lequation, y
2
= x
3
+ ax + b, de E,
cest ` a dire (a) = a et (b) = b.
6. e
n
_
(S), (T)
_
= e
n
(S, T)
deg()
pour tout endomorphisme separable
de E. Si les coecients de E sont dans un corps ni F
q
, alors le
resultat est vrai si est lendomorphisme de Frobenius
q
.
Demonstration: Pour la preuve voir [33]
Corollaire 13.7.8. Si E[n] E(K) alors
n
K
206 CHAPITRE 13. RAPPELS MATH

EMATIQUES
Sites internet
cryp1 http://cryptosec.lautre.net/index.php3;
donne un resume et des references sur divers aspects de la cryptogra-
phie
hist1 http://histoirecrypto.ifrance.com/histoirecrypto/ ;
site historique
prim1 http://www.utm.edu/research/primes/ ;
donne des renseignements sur les nombres premiers (records, tests de
primalite,...)
cryp2 http://www.securite.org/db/crypto/ ;
donne un resume et des references sur divers aspects de la cryptogra-
phie
aes1 http://www.securiteinfo.com/crypto/aes.shtml:
donne une description succincte dAES et de sa comparaison avec triple
DES
aes2 http://www.cryptageaes.com/:
presente des produits commerciaux utilisant AES
aes3 http://www.bibmath.net/crypto/moderne/aes.php3:
donne une description succincte dAES
Bibliographie
[1] Manindra Agrawal, Neeraj Kayal & Nitin Saxena, PRIMES is in
P, Annals of Mathematics 160, n

2, (2004), 781-793.
[2] Fran cois Arnault, Theorie des nombres et Cryptographie, cours DEA
Universite de Limoges, 2000.
[3] Thomas Baignres, Pascal Junod, Yi Lu, Jean Monnerat & Serge
Vaudenay, A Classical Introduction to Cryptography Exercice Book,
Springer, 2006
[4] Christophe Bidan, Cryptographie et Cryptanalyse, Cours,
http://www.supelec-rennes.fr/ren/perso/cbidan/cours/crypto.pdf
[5] I.F Blake, G. Seroussi, N. P. Smart, Elliptic curves in cryptogra-
phy, London Mathematical Society Lecture Note Series, 265 Cambridge
University Press 1999.
[6] D. Boneh & M. Franklin, Identity based encryption from the
Weil pairing. In Advances in Cryptology- Crypto2001, pages 213-229,
Springer-Verlag, 2001, Lecture Notes on Computer Sciences, n

2139.
[7] Johannes A. Buchmann, Introduction to cryptography, Springer, Un-
dergraduate Texts in Mathematics, 2000.
[8] Joan Daemen & Vincent Rijmen, The design of Rijndael Springer
Verlag, Berlin Heidelberg New-York, 2002.
[9] W. Diffie, M.E. Helman, New Directions in Cryptography, IEEE
Transactions on Information Theory, 22 , 644-654, 1976.
[10] Gilles Dubertet, Initiation ` a la Cryptographie, editions Vuibert.
[11] Touradj Ibrahimi, Franck Leprevost, Bertrand Warusfel, Enjeux
de la securite multimedia, Herm`es Science Lavoisier, 2006
207
208 BIBLIOGRAPHIE
[12] Touradj Ibrahimi, Franck Leprevost, Bertrand Warusfel, Cryp-
tographie et securite, Herm`es Science Lavoisier, 2006
[13] G.H.Hardy, E.M. Wright, Une Introduction ` a la theorie des nom-
bres, Springer-Verlag, SCOPOS 15, 2005.
[14] Robert Harris, Enigma, editions Pocket.
[15] Howard M. Heys, A tutorial in Linear and dierential cryptanalysis,
disponible sur internet lURL
http://www.engr.mun.ca/~howard/Research/Papers/ldc_tutorial.html
[16] K. Ireland, M. Rosen, A Classical Introduction to Modern Number
Theory, Springer-Verlag, GTM, 1990.
[17] Auguste Kerckhoffs, La cryptographie militaire, Journal des sci-
ences militaires, vol. IX, pp. 5-83, Jan. 1883, pp. 161-191, Feb. 1883,
disponible `a: http://www.petitcolas.net/fabien/kerckhos/
[18] Neal Koblitz, A Course in Number Theory and Cryptography, 2nd
edition, Springer, Graduate Texts in Mathematics n

114, , 1994.
[19] Neal Koblitz, Introduction to Elliptic Curves and Modular Forms,
Springer-Verlag, GTM 97, 1987.
[20] A. J. Menezes, P. C. van Oorschot, and S. A. Vanstone, Handbook
of Applied cryptographie, Discrete Mathematics and its applications,
CRC Press, 1997.
[21] Jean-Louis Pons, Introduction ` a la Cryptographie, cours ENSAM Aix
en Provence, 2003.
[22] La Recherche, n

386 (05/2005), n

383 -(02/2005), n

382 (01/2005),
n

381 (12/2004), n

377 (07/2004, n

377 (07/2004), n

371 (01/2004),
n

370 (12/2003), n

366 (07/2003), n

365 (06/2003), n

362 (03/2003),
n

361 (02/2003), n

360 (01/2003), n

352 (04/2002), n

351 (03/2002),
n

328 (02/2000), n

327 (01/2000), n

310 (06/1998).
[23] Pour la Science
[24] Guy Robin, Algorithmique et cryptographie, editions Ellipses.
[25] Claude E. Shannon, Communication Theory of secrecy systems, Bell
Systems Technical Journal, 27 (1948), 379-423 & 623-665.
BIBLIOGRAPHIE 209
[26] Claude E. Shannon, A mathematical theory of communication, Bell
Systems Technical Journal, 28 (1949), 656-715.
[27] Bruce Schneier, Cryptographie Appliquee, editions Thomson Publish-
ing.
[28] Lionel Schwartz, Mathematiques pour la Licence, Alg`ebre, Dunod,
Paris, 1998.
[29] Simon Singh, Histoire des codes secret, JC Latt`es, 1999.
[30] Jacques Stern La Science du Secret, Odile Jacob, Paris, 1998.
[31] Douglas Stinson, Cryptographie, theorie et pratique, editions Vuibert
2e edition, 2003.
[32] Serge Vaudenay, A Classical Introduction to Cryptography, Springer,
2006
[33] Lawrence C. Washington, Elliptic Curves, Number Theory and Cryp-
tography, Discrete Mathematics and its applications, Chapman &
Hall/CRC, 2003.
[34] Benne de Weger, Cryptographic Systems, cours Technische Universiteit
Eindhoven 2005; http://www.win.tue.nl/ bdeweger/
[35] Encyclopedie Wikipedia, Probl`eme du sac ` a dos
[36] V. V. Yaschenko, Cryptography: An Introduction, Moscow Center for
Continuous Mathematics Education, Editor AMS, 2002.
[37] Gilles Zemor, Cours de cryptographie, editions Cassini, 2002.
Index
(a, b), . . . . . . . . . . . . . . . . . . . . . . . . p. 166
E(K), . . . . . . . . . . . . . . . . . . . . . . . p. 199
N
e
, . . . . . . . . . . . . . . . . . . . . . . . . . . p. 84
S-botes, . . . . . . . . . . . . . . . . . . . . p. 64
(, . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 35
/, . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 35
T, . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 35

S
, . . . . . . . . . . . . . . . . . . . . . . . . . . p. 91
a b, . . . . . . . . . . . . . . . . . . . . . . . . p. 166

Eve, . . . . . . . . . . . . . . . . . . . . . . . . . p. 7
egalite de la
division euclidienne, . . . p. 163
element neutre
pour laddition, . . . . . p. 183
element unite, . . . . . . . . . . . . . . . p. 184
element inversible, . . . . . . . . . . . p. 185
AddRoundKey, . . . . . . . . . . . p. 93
BinarytoField, . . . . . . . . . . . . . p. 92
ExpandKey, . . . . . . . . . . . . . . . p. 89
FieldInv, . . . . . . . . . . . . . . . . . . . p. 92
MixColumns, . . . . . . . . . . . . . . p. 93
Rotword, . . . . . . . . . . . . . . . . . . . p. 89
ShiftRows, . . . . . . . . . . . . . . . . . p. 93
State, . . . . . . . . . . . . . . . . . . . . . . . p. 88
SubBytes, . . . . . . . . . . . . . . . . . . p. 91
FieldtoBinary, . . . . . . . . . . . . . p. 92
accouplement de Weil, . . . . . . . p. 206
Advanced Encrytion
Standard, . . . . . p. 62
AES, . . . . . . . . . . . . . . . . . . . . . . . . p. 62
algebriquement clos, . . . . . . . . . p. 186
algorithme de codage, . . . . . . . p. 35
algorithme cryptogra
phique, . . . . . p. 9
algorithme de diversi
cation de clef, . . . p. 84
algorithme LLL, . . . . . . . . . . . . . p. 101
Alice, . . . . . . . . . . . . . . . . . . . . . . . . p. 7
alphabet, . . . . . . . . . . . . . . . . . . . . p. 154
analyse de frequence, . . . . . . . . p. 20
anneau, . . . . . . . . . . . . . . . . . . . . . p. 184
arbitre, . . . . . . . . . . . . . . . . . . . . . . p. 134
arithmetique modulaire, . . . . . p. 170
associativite, . . . . . . . . . . . . . . . . p. 183
attaque `a texte
chire choisi, . . . . . . . . p. 13
attaque `a texte
chire connu, . . . . . . . . p. 13
attaque `a texte
clair choisi, . . . . . . . . . . p. 13
attaque `a texte
clair connu, . . . . . . . . . p. 13
attaque par force brute, . . . . . p. 95
attaque physique, . . . . . . . . . . . . p. 13
attaques des anniversaires, . . . p. 129
Attaques dictionnaires, . . . . . . p. 96
Attaques par
recherche exhaustive, . . . p. 96
Attaques repertoires, . . . . . . . . p. 97
authentication, . . . . . . . . . . . . . p. 11
bascules, . . . . . . . . . . . . . . . . . . . . p. 51
210
INDEX 211
Bob, . . . . . . . . . . . . . . . . . . . . . . . . . p. 7
branchement, . . . . . . . . . . . . . . . . p. 51
brute force attack, . . . . . . . . . . . p. 95
buts des attaques, . . . . . . . . . . . p. 12
CA, . . . . . . . . . . . . . . . . . . . . . . . . . p. 119
caracteristique nie, . . . . . . . . . p. 186
caracteristique innie, . . . . . . . p. 186
caracteristique zero, . . . . . . . . . p. 186
CBC, . . . . . . . . . . . . . . . . . . . . . . . . p. 29
CCG, . . . . . . . . . . . . . . . . . . . . . . . p. 54
certicat, . . . . . . . . . . . . . . . . . . . . p. 119
Certication Authority, . . . . . . p. 119
CFB, . . . . . . . . . . . . . . . . . . . . . . . . p. 30
chirement, . . . . . . . . . . . . . . . . . p. 9
chirement basee
sur lidentite, . . . . . . . . p. 120
chirement par blocs, . . . . . . . . p. 27
chirement par ots, . . . . . . . . p. 27
chirement par ux, . . . . . . . . . p. 27
Cipher Block Chaining, . . . . . . p. 29
Cipher FeedBack, . . . . . . . . . . . . p. 30
cle, . . . . . . . . . . . . . . . . . . . . . . . . . . p. 9
cle de chirement, . . . . . . . . . . . p. 9
cle matre, . . . . . . . . . . . . . . . . . . . p. 122
cle publique
de chirement, . . . . . . p. 103
cle secr`ete, . . . . . . . . . . . . . . . . . . p. 9
cle secr`ete, . . . . . . . . . . . . . . . . . . p. 17
cle secr`ete
de dechiffrement, . . . . p. 103
cloture algebrique, . . . . . . . . . . . p. 186
classe de congruence
modulo m, . . . . . . . p. 172
clef detage, . . . . . . . . . . . . . . . . . p. 80
clef de dechirement, . . . . . . . . p. 9
clef publique, . . . . . . . . . . . . . . . . p. 10
clefs detages, . . . . . . . . . . . . . . . . p. 63
clefs parasites, . . . . . . . . . . . . . . . p. 155
Clock Control Generator, . . . . p. 54
co ut en espace, . . . . . . . . . . . . . . p. 159
co ut en temps, . . . . . . . . . . . . . . p. 159
codage, . . . . . . . . . . . . . . . . . . . . . . p. 9
code ane, . . . . . . . . . . . . . . . . . . p. 21
code dauthentication, . . . . . . p. 127
code de Vigen`ere, . . . . . . . . . . . . p. 21
code digrammes, . . . . . . . . . . . . . p. 22
code monoalphabetique, . . . . . p. 22
code trigrammes, . . . . . . . . . . . . p. 22
codes `a masques jetables, . . . . p. 47
Codes `a repertoire, . . . . . . . . . . p. 15
codes de Cesar, . . . . . . . . . . . . . . p. 19
codes de permutation, . . . . . . . p. 16
codes de substitution, . . . . . . . p. 19
codes de Vernam, . . . . . . . . . . . . p. 47
collisions faibles diciles, . . . . p. 129
collisions fortes diciles, . . . . . p. 129
commutative, . . . . . . . . . . . . . . . . p. 183
complexite calculatoire, . . . . . . p. 140
complexite dans
le pire des cas, . . . . . . . . . . p. 96
complexite en moyenne, . . . . . p. 96
complexite polynomiale, . . . . . p. 159
complexite
non polynomiale, . . . . p. 159
condentialite, . . . . . . . . . . . . . . . p. 11
condentialite parfaite, . . . . . . p. 14,
p. 153
confusion et diusion, . . . . . . . p. 80
congrus modulo P, . . . . . . . . . . p. 192
corps, . . . . . . . . . . . . . . . . . . . . . . . p. 185
Counter-mode encryption, . . . p. 31
courbe elliptique
denie sur F
q
, . . . . . . . p. 203
courbe elliptique
non singuli`ere, . . . . . . p. 197
courbe singuli`ere, . . . . . . . . . . . . p. 198
crible dEratosthenes, . . . . . . . . p. 179
crible quadratique, . . . . . . . . . . p. 181
CRL, . . . . . . . . . . . . . . . . . . . . . . . . p. 120
212 INDEX
cryptanalyse, . . . . . . . . . . . . . . . . p. 8
cryptanalyse dierentielle, . . p. 63,
p. 74
cryptanalyse lineaire, . . . . . . . . p. 63
cryptanalyse lineairel, . . . . . . . p. 65
cryptographie, . . . . . . . . . . . . . . . p. 8
Cryptographie basee
sur lidentite, . . . . . . . . p. 122
cryptologie, . . . . . . . . . . . . . . . . . . p. 8
cryptosyst`eme RSA, . . . . . . . . . p. 38
CTR, . . . . . . . . . . . . . . . . . . . . . . . . p. 31
dechirement, . . . . . . . . . . . . . . . p. 9
decodage, . . . . . . . . . . . . . . . . . . . p. 9
Data Encrytion Standard, . . . p. 62
degre de , . . . . . . . . . . . . . . . . . . p. 203
degre du polynome, . . . . . . . . . . p. 188
DES, . . . . . . . . . . . . . . . . . . . . . . . . p. 62
destinataire du message, . . . . . p. 154
digital right management, . . . p. 43
diviseur, . . . . . . p. 163, . . . . . . p. 189
diviseurs triviaux, . . . . . . . . . . . p. 163
division euclidienne, . . . . . . . . . p. 163
DRM, . . . . . . . . . . . . . . . . . . . . . . . p. 43
ECB, . . . . . . . . . . . . . . . . . . . . . . . . p. 28
Electronic Code Book, . . . . . . . p. 28
empreinte numerique, . . . . . . . . p. 127
en continu, . . . . . . . . . . . . . . . . . . p. 10
endomorphisme dune
courbe elliptique, . . . . p. 202
endomorphisme de Frobenius, p. 203
engagement, . . . . . . . . . . . . . . . . . p. 140
entropie, . . . . . . . . . . . . . . . . . . . . . p. 154
espace des clefs, . . . p. 9, . . . p. 35
exposant de
la cle publique, . . . . . . p. 102
exposant de
la cle secr`ete, . . . . . . . . p. 102
factorisation des entiers, . . . . . p. 38
fonction `a sens unique, . . . . . . p. 38
fonction booleenne, . . . . . . . . . . p. 54
fonction detage, . . . . . . . . . . . . . p. 80
fonction de chirement, . . . . . . p. 9
fonction de combinaison, . . . . . p. 54
fonction de compression, . . . . . p. 128
fonction de dechirement, . . . p. 9
fonction de decodage, . . . . . . . . p. 35
fonction de ltrage, . . . . . . . . . . p. 54
fonction de hachage, . . . . . . . . . p. 127
fonction de hachage
`a sens unique, . . . . . . . p. 129
fonction de hachage
iteree, . . . . . . . . p. 128
force brute, . . . . . . . . . . . . . . . . . . p. 18
gestion des
droits numeriques, . . . p. 43
groupe, . . . . . . . . . . . . . . . . . . . . . . p. 183
groupe abelien, . . . . . . . . . . . . . . p. 184
groupe cyclique, . . . . . . . . . . . . . p. 184
hash function, . . . . . . . . . . . . . . . p. 127
IBE, . . . . . . . . . . . . . . . . . . . . . . . . . p. 123
ID-PKC, . . . . . . . . . . . . . . . . . . . . p. 120
Identity Based Encryption, 123
Identity Based Public
Key Cryptography, . . . . . . . p. 120
indeterminee, . . . . . . . . . . . . . . . . p. 188
indicatrice dEuler, . . . . . . . . . . p. 176
indice de concidences, . . . . . . . p. 23
infrastructure des
syst`emes `a clef secr`ete, . . . . p. 94
infrastructures des
syst`emes `a clef publique, . . . p. 119
integrite des donnees, . . . . . . . . p. 11
inverse, . . . . . . . p. 183, . . . . . . . p. 185
Kerberos, . . . . . . . . . . . . . . . . . . . . p. 94
Key Generator Center, . . . . . . p. 122
INDEX 213
KGC, . . . . . . . . . . . . . . . . . . . . . . . p. 122
Le protocole SS, . . . . . . . . . . . . . p. 124
les mots codes, . . . . . . . . . . . . . . p. 35
les mots en clair, . . . . . . . . . . . . p. 35
linear shift feedback
register, . . . . . p. 49
logarithme discret, . . . . . . . . . . . p. 112
LSFR, . . . . . . . . . . . . . . . . . . . . . . . p. 49
methode de la grille, . . . . . . . . . p. 16
machines de Turing, . . . . . . . . . p. 156
Martin, . . . . . . . . . . . . . . . . . . . . . . p. 7
mascarade, . . . . . . . . . . . . . . . . . . p. 12
Master Key, . . . . . . . . . . . . . . . . . p. 122
matrice de transition, . . . . . . . . p. 51
Menezes-Vanstonne, . . . . . . . . . p. 98
message chire, . . . . . . . . . . . . . . p. 9
milieu de transmission, . . . . . . p. 154
mod`ele X.509, . . . . . . . . . . . . . . . p. 120
module du cryptosyst`eme, . . . p. 102
National Bureau of
Standards, . . . . . . . p. 62
NLCG, . . . . . . . . . . . . . . . . . . . . . . p. 54
NLFG, . . . . . . . . . . . . . . . . . . . . . . p. 54
nombres premiers, . . . . . . . . . . . p. 164
Non Linear
Combining Generator, . . . p. 54
Non Linear
Filter Generator, . . . . p. 54
non-repudiation, . . . . . . . . . . . . . p. 11
non-repudiation
de transmission, . . . p. 11
non-repudiation
dorigine, . . . . . . . . p. 11
non-repudiation
de reception, . . . . p. 11
NP, . . . . . . . . . . . . . . . . . . . . . . . . . p. 159
OFB, . . . . . . . . . . . . . . . . . . . . . . . . p. 31
operation , . . . . . . . . . . . . . . . . . p. 55
operation , . . . . . . . . . . . . . . . . . p. 55
operation et, . . . . . . . . . . . . . . p. 55
operation ou exclusif, . . . . . p. 55
operations elementaires, . . . . . p. 160
ordre dun element, . . . . . . . . . . p. 184
OU exclusif, . . . . . . . . . . . . . . . . . p. 27
Output FeedBack, . . . . . . . . . . . p. 31
P, . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 159
par bloc, . . . . . . . . . . . . . . . . . . . . p. 10
par blocs, . . . . . . . . . . . . . . . . . . . p. 22
permutation initiale, . . . . . . . . . p. 82
PGCD, . . . . . . . . . . . . . . . . . . . . . . p. 166
PGP, . . . . . . . . . . . . . . . . . . . . . . . . p. 37
PKI, . . . . . . . . . . . . . . . . . . . . . . . . p. 119
plus grand commun
diviseur, . . . . . . . . . . . . p. 166
point `a linni, . . . . . . . . . . . . . . p. 197
points denis
sur F
q
, . . . . . . . . . . . . . . p. 203
polyalphabetique, . . . . . . . . . . . . p. 22
polynome caracteristique, . . . . p. 51
polynome irreductible, . . . . . . . p. 189
polynome premier, . . . . . . . . . . . p. 189
polynome unitaire, . . . . . . . . . . p. 188
polynomes associes, . . . . . . . . . . p. 189
porte derobee, . . . . . . . . . . . . . . . p. 99
premiers entre eux, . . . . . . . . . . p. 166
preuve sans apport
de connaissance, . . . p. 44
Principes de Kerckhos, . . . . . p. 10
procede de chiffrement, . . . . . . p. 35
probabibilite mutuelle, . . . . . . . p. 152
probabilite conditionnelle, . . . p. 152
probl`emes non polynomiaux
en temps, . . . . . . . . . . . p. 159
probl`emes polynomiaux
en temps, . . . . . . . . . . . p. 159
214 INDEX
produit de polynomes
premiers, . . . . . p. 190
protocole interactif, . . . . . . . . . . p. 142
protocoles didentication, . . . p. 44
Public Key
Infrastructure, . . . . . . . p. 119
quantite dinformation, . . . . . . p. 154
reciprocite quadratique, . . . . . p. 177
registre `a decalage
`a retroaction lineaire, . . . . . p. 50
reseaux de substitution
-permutation, . . . . p. 63
residus quadratiques, . . . . . . . . p. 177
r`egle de chirement, . . . . . . . . . p. 35
r`egle de dechirement, . . . . . . . p. 35
racine primitive modulo p, . . . p. 173
rapport de propagation, . . . . . p. 77
redondance, . . . . . . . . . . . . . . . . . p. 155
relativement premiers, . . . . . . . p. 166
representant de la classe
de congruence, . . . . . . p. 172
Rivest-Shamir et Adleman, . . p. 38
ronde, . . . . . . . . . . . . . . . . . . . . . . . p. 27
S-botes, . . . . . . . . . . . . . . . . . . . . . p. 82
securite calculatoire, . . . . . . . . . p. 14
securite inconditionnelle, . . . . . p. 14
securite prouvee, . . . . . . . . . . . . p. 14
separable, . . . . . . . . . . . . . . . . . . . p. 203
sac-` a-dos, . . . . . . . . . . . . . . . . . . . . p. 99
sac-` a-dos
super-croissant, . . . . . p. 100
schema de Feistel, . . . . . . . . . . . p. 80
scytale, . . . . . . . . . . . . . . . . . . . . . . p. 16
Secure Hash Algorithm, . . . . . p. 130
SHA-1, . . . . . . . . . . . . . . . . . . . . . . p. 130
somme dentree, . . . . . . . . . . . . . p. 69
somme de sortie, . . . . . . . . . . . . p. 69
source du message, . . . . . . . . . . p. 154
sous-exponentiel, . . . . . . . . . . . . p. 41
steganographie, . . . . . . . . . . . . . . p. 7
suites pseudo-aleatoires, . . . . . p. 49
suites recurrentes
lineaires sur un corps ni, . p. 49
super-increasing
knapsack, . . . . . . . . . . . p. 100
symbole de Jacobi, . . . . . . . . . . p. 178
symbole de Legendre, . . . . . . . . p. 177
Symmetric Keys
Management, . . . . . . . p. 94
syst`eme asymetrique, . . . . . . . . p. 10
syst`eme cryptographique
produit, . . . . p. 80
syst`eme de chirement
itere, . . . . . . p. 84
syst`eme de gestion
des clefs, . . . . . . . . . . . . p. 94
syst`eme symetrique, . . . . . . . . . p. 9
table dapproximation
lineaire, . . . . . . . . . . p. 69
Tamper Resistant
Security Module, . . . . p. 121
tatouage, . . . . . . . . . . . . . . . . . . . . p. 7
terme de degre i, . . . . . . . . . . . . p. 188
test de Lucas, . . . . . . . . . . . . . . . p. 180
test de primalite
de Solovay-Strassen, . . . . . . p. 180
texte clair, . . . . . . . . . . . . . . . . . . p. 9
theorie de linformation, . . . . . p. 14
theorie de la complexite, . . . . . p. 14
theorie de la complexite
algorithmique, . . . . . . . p. 156
Tiers de Conance, . . . . . . . . . . p. 119
tiers de conance, . . . . . . . . . . . p. 134
transfert inconscient, p. 44, p. 142
TRSM, . . . . . . . . . . . . . . . . . . . . . . p. 121
Trusted Third Party, . . . . . . . . p. 119
TTP, . . . . . . . . . . . . . . . . . . . . . . . . p. 119
INDEX 215
types dattaques, . . . . . . . . . . . . p. 12
unite, . . . . . . . . . . . . . . . . . . . . . . . p. 164
unite de K[X], . . . . . . . . . . . . . . . p. 189
usurpation didentite, . . . . . . . . p. 12
variable, . . . . . . . . . . . . . . . . . . . . . p. 188
variable aleatoire discr`ete, . . . p. 151
watermarking, . . . . . . . . . . . . . . . p. 7
XOR, . . . . . . . . . . . . . . . . . . . . . . . p. 27
zero-knowledge proof, . . . . . . . . p. 44