Вы находитесь на странице: 1из 67

2

ARITHMETIQUE ET
CODES SECRETS

PC
Date de création
2005

Cours, Exercices,

Auteur (s) de la ressource pédagogique :


FACK Hélène

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 2


PREMIER CYCLE

Mathématiques
Cryptographie

ARITHMETIQUE ET CODES SECRETS

Hélène FACK

Institut National des Sciences appliquées de Lyon

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés.


Sommaire

ARITHMETIQUE ET CODES SECRETS 2

1 INTRODUCTION 3

2 STRUCTURES ALGEBRIQUES 4
2.1 Groupes 4
2.1.1 Définition ..................................................................................................4
2.1.2 Exemples et contre exemples ...................................................................4
2.1.3 Sous-groupe .............................................................................................5
2.2 Anneaux 6
2.3 Corps 7
2.3.1 Exemples et contre exemples ...................................................................7

3 RELATION D’EQUIVALENCE, STRUCTURE QUOTIENT 8


3.1 Définition 8
3.2 Classes d’équivalence 8
3.3 Ensemble quotient 9
3.3.1 Exemples ..................................................................................................9
3.4 Quotient d’un groupe par un sous-groupe 10

4 CONGRUENCES DANS  12
4.1 Division euclidienne 12
4.2 Divisibilité dans  12
4.3 Sous-groupes additifs de  12
4.4 Congruences dans  13
4.5 Opérations sur les « congruences » 13
4.6 Application des congruences à la divisibilité 14
4.7 Codages de tous les jours utilisant les congruences 14
4.8 Cryptographies historiques utilisant les congruences 15
4.8.1 Le cryptage de Vigénère .........................................................................16
4.9 Cryptographies actuelles fondées sur les congruences : DES 17
4.9.1 Masque jetable .......................................................................................17

5 NOMBRES PREMIERS 18
5.1 Définition 18
5.2 L’ensemble des nombres premiers est infini 18
5.3 Crible d’Eratosthène 18
5.4 Décomposition en facteurs premiers 19
5.5 Diviseurs d’un entier 20
5.6 Corps  20
p

6 ENTIERS PREMIERS ENTRE EUX 21


6.1 PGCD 21
6.2 Entiers premiers entre eux 21

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés.


Arithmétique et codes secrets 1

6.3 Algorithme d’Euclide 22


6.4 Identité de Bezout 23
6.4.1 Conséquences de l’identité de Bezout ....................................................23
6.5 Eléments inversibles dans  24
n

7 THEOREMES POUR LA CRYPTOGRAPHIE 26


7.1 Théorème (des restes) chinois 26
7.2 Théorème de Fermat 27
7.2.1 Démonstration du théorème (cf. une démonstration utilisant l’ordre
d’un sous-groupe sur les fiches d’exercices.) .....................................................27
7.2.2 Recherche « statistique » de nombres premiers .....................................28
7.3 RSA 28
7.4 Technique d’utilisation de RSA 30

8 SECURITE DES SYSTEMES D’INFORMATION 32


8.1 Définitions 32
8.2 Techniques 33
8.3 Exemple : assurer la confidentialité 33
8.4 Exemple : assurer l’authenticité 33
8.5 Exemple : assurer l’intégrité par une fonction de hachage 34
8.6 Exemple de signature numérique 34
8.7 Sécurité et mathématiques 35
8.7.1 Grands nombres premiers ......................................................................35
8.8 Attaques de RSA 37
8.8.1 Factorisation de RSA-640 .......................................................................37
8.9 La sécurité des cartes bancaires 39

9 EXERCICES 42
9.1 Structures 42
9.2 Congruences 43
9.3 Applications des congruences : NIR 44
9.4 Applications des congruences : Un code correcteur et le code de César 45
9.5 Nombres premiers 46
9.6 Entiers premiers entre eux 48
9.7 Théorème des Fermat / Théorème chinois 49
9.8 RSA 50

10 TEXTES D’EXAMENS 52
10.1 Racines carrées modulaires et chiffrement de Rabin, examen du 17 mai
2005, EURINSA approfondissement « Mathématiques discrètes » 52
10.2 : Groupes cycliques et chiffrement El Gamal, examen du 25 mai 2005,
OT « Mathématiques et Codages » 53
10.3 Matrices à coefficients dans  et chiffrement de Hill, examen du 18
26
janvier 2006, OT « Mathématiques et Codages » 55
10.4 RSA, théorème de Fermat et nombres pseudo-premiers, examen du 18
avril 2006, EURINSA approfondissement « Mathématiques discrètes » 57

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 1


Arithmétique et codes secrets 2

10.5 Sécurité, factorisation des entiers, examen du 24 janvier 2007, OT


« Mathématiques et Codages » 58
10.6 Groupes cycliques, protocole de Diffie-Helmann, examen du 5 juin 2007,
EURINSA approfondissement « Mathématiques discrètes » 60
10.7 RSA, RSA-CRT utilisé lors de la validation des cartes bancaires, examen
du 2 juin 2009, EURINSA approfondissement « Mathématiques et codages » 62

11 BIBLIOGRAPHIE 64

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 2


Arithmétique et codes secrets 3

1 Introduction
Communiquer, c’est-à-dire transmettre des informations est une des caractéristiques
des êtres vivants. Plus ces êtres sont évolués et organisés en sociétés, plus cette
communication est nécessaire et prend des formes de plus en plus complexes et
techniques. On ne sait pas quand est né le langage, système complexe de
communication entre les individus. Nous sont restées des traces sous forme de
signes et de dessins dans les grottes préhistoriques. L’écriture est plus récente, ainsi
que l’utilisation de chiffres pour effectuer des calculs. Les premiers systèmes
d’écriture du langage ou des nombres utilisaient beaucoup de symboles
(idéogrammes, écriture cunéiforme, chiffres « romains »). L’idée qu’un nombre fini,
et très réduit, de symboles suffit à transcrire l’information (par essence infinie)
est encore plus récente. L’alphabet (nombre fini de lettres) naît à Ougarit, en
Mésopotamie vers le XIIème siècle avant J.C. Nos chiffres « 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 »
viennent d’Inde et sont transmis en Occident par les lettrés arabes à la fin du Moyen
Âge.

A l’ère des ordinateurs, le nombre des symboles utilisés devient le plus petit possible :
deux symboles sont utilisés correspondant aux états d’un circuit électrique. Par
convention ces symboles sont 0 et 1. Il suffit alors de coder les lettres de l’alphabet et
les nombres en suites de 0 et de 1. L’information écrite est ainsi transformée en une
longue suite de 0 et de 1. Le traitement de l’information, c’est-à-dire sa transmission,
son stockage, sa restitution, la correction des erreurs dues à ces traitements
deviennent un travail sur des nombres, et s’appuient sur une branche ancienne des
mathématiques : l’arithmétique. Ces besoins récents ont remis l’arithmétique dans
l’actualité et justifié la recherche dans cette discipline.
Ce cours présente des bases pour comprendre certaines problématiques du
traitement de l’information. La notion centrale est celle de congruence. Elle permet
d’une part d’expliquer les corrections d’erreurs sur des numéros : numéro ISBN des
livres, numéro INSEE, clef numérique des comptes bancaires, détaillées dans ce
cours. D’autre part, les congruences sont le fondement des cryptographies, des plus
anciennes aux plus récentes, présentées également dans ce cours.
Les erreurs dues à la transmission, au stockage ou à la lecture de l’information
numérisée sont corrigées par des techniques appelées « codes correcteurs
d’erreurs ». Ces algorithmes s’appuient sur l’algèbre linéaire pour les codes les plus
simples, et de nouveau sur des congruences (dans des algèbres de polynômes) pour
les plus utilisés (cf. exercice 15 § IX.4).

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 3


Arithmétique et codes secrets 4

2 STRUCTURES ALGEBRIQUES
Dans ce paragraphe on rappelle et complète les notions vues en première année. Les
ensembles de « nombres »  ,  ,  ,  sont supposés connus avec l’addition et la
multiplication habituelles. On rappelle que dans  et  toute partie non vide et
majorée admet un plus grand élément, que dans  toute partie non vide et majorée
admet une borne supérieure (dans  un tel énoncé n’a pas de sens car il n’existe
pas de relation d’ordre compatible avec les opérations).

2.1 Groupes
2.1.1 Définition
Soit G un ensemble et • une loi de composition interne (c’est-à-dire que si x et y
appartiennent à G, alors x • y appartient à G). On dit que (G, • ) est un groupe si la
loi • :
- est associative, c’est-à-dire : ∀x, y , z ∈ G ( x • y ) • z =x • ( y • z) ;
- possède un élément neutre, c’est-à-dire qu’il existe un élément e de G tel que :
∀x ∈ G x • e = e • x = x ;
- tout élément possède un symétrique, c ‘est à dire :
∀x ∈ G, ∃x'∈ G x • x' = x'• x = e .

Remarques : On montre que e est alors l’unique élément neutre, et que le


symétrique de tout élément est unique.

Si la loi • est commutative (c’est-à-dire ∀x, y ∈ G, x • y = y • x ), alors on dit que G


est un groupe commutatif.

Lorsque la loi est notée +, le groupe est dit additif et le symétrique s’appelle opposé ;
lorsque la loi est notée multiplicativement, le groupe est dit multiplicatif et le
symétrique s’appelle inverse.

2.1.2 Exemples et contre exemples


• L’ensemble  des entiers relatifs est un groupe commutatif pour l’addition +.
L’élément neutre est zéro : 0.
• Par contre l’ensemble  des entiers naturels (positifs ou nul) n’est pas un
groupe pour cette loi + : par exemple 1 n’a pas d’opposé.
• L’ensemble des nombres complexes de module 1 est un groupe commutatif
pour la multiplication.
• Soit=G  +∗ ×  . On munit G de la loi qui correspond à la composition des
applications affines : f( a,b) ( x)
= ax + b :
( f( a,b)  g(c ,d ) )( x)= a(cx + d) + b= acx + ad + b
d’où : ( a,b) ∗ (c ,d) = ( ac , ad + b) . En utilisant cette correspondance, on vérifie que
(G, ∗ ) est un groupe. De plus, (1,1) ∗ (0,1) = (0,2) et (0,1) ∗ (1,1) =(0,1) .
Cette loi n’est donc pas commutative.

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 4


Arithmétique et codes secrets 5

Groupes finis
La structure d’un groupe fini est entièrement donnée par la table de sa loi de
composition. Le nombre d’éléments d’un groupe fini s’appelle l’ordre du groupe.

Exemple fondamental : le groupe B


L’ensemble formé de deux éléments B = {0,1} muni de la loi + ci-dessous est un
groupe commutatif, qui correspond à 
2 étudié dans la suite :
+ 0 1
0 0 1
1 1 0
Attention : dans B, 1+1=0.
Ce groupe B (pour Boole) est utilisé en informatique pour coder les deux états
possibles d’un bit. La loi + correspond au OU exclusif (=XOR en informatique). En
arithmétique, les valeurs 0 et 1 sont les restes dans la division des entiers par 2.

Groupe ayant 4 éléments : G = {0,1,2,3} muni de la loi + ci-dessous est un groupe


commutatif, noté 
4 (cf.IV.4) et s’interprète comme les restes dans la division des
entiers par 4.
+ 0 1 2 3
0 0 1 2 3
1 1 2 3 0
2 2 3 0 1
3 3 0 1 2

2.1.3 Sous-groupe
Soit (G, • ) un groupe. Une partie G’ de G est un sous-groupe (pour la loi • ) si la loi
• induit sur G’ une structure de groupe.

Théorème Soit (G, • ) un groupe et G' un sous ensemble de G. G’ est un sous-


groupe de G si et seulement si :
- G’ est non vide
- la loi • est stable dans G’, c’est-à-dire ∀x, y ∈ G' x • y ∈ G'
- le symétrique (écrit dans G) de tout élément de G’ est dans G’.
On résume ces deux dernières propriétés par ∀x, y ∈ G' x • y −1 ∈ G'

Exemples
n { np, p ∈  } est un sous-groupe de  . On verra
Pour la loi +, et pour n entier,=
(cf. §IV.3) que tous les sous-groupes additifs de  sont de cette forme.
En géométrie plane, les isométries forment un groupe pour la composition des
applications. Celles qui laissent invariant un rectangle (différent d’un carré) forment
un groupe commutatif fini d’ordre quatre.

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 5


Arithmétique et codes secrets 6

2.2 Anneaux
Définition Un anneau A est un ensemble muni de deux lois de composition internes,
reliées par les propriétés suivantes :
- A est muni d’une première loi, notée + qui lui donne une structure de groupe
commutatif ;
- il existe une deuxième loi, notée • , associative et distributive par rapport à +
( ∀x, y , z ∈ A, x • ( y + z) = x • y + x • z ).

Si la loi • possède un élément neutre, on dit que A est unitaire. Si la loi • est
commutative, on dit que l’anneau A est commutatif.

Exemples et contre exemples


L’ensemble  est un anneau commutatif unitaire, la deuxième loi étant la
multiplication habituelle.
L’ensemble des matrices réelles carrées d’ordre n (pour n ≥ 2 ) est un anneau unitaire
pour l’addition et la multiplication des matrices. Cet anneau n’est pas commutatif :
0 1 0 0   1 0  0 0  0 1 0 0 
0 0× 1 0 =  0 0  et  1 0  ×  0 0  =  .
          0 1
=
On peut munir B {=0,1}  2= et G {= 0,1,2,3}  4 d’une loi multiplicative leur
donnant une structure d’anneau commutatif unitaire :
Dans B =  la multiplication correspond au ET de la logique.
2
* 0 1
0 0 0
1 0 1

Dans G = 
4 on a la table de multiplication :
* 0 1 2 3
0 0 0 0 0
1 0 1 2 3
2 0 2 0 2
3 0 3 2 1
On constate que dans cet anneau : 2 ∗ 2 =0 ; on dit que 2 est un diviseur de zéro. Un
tel élément n’a pas d’inverse :
En effet, x est un diviseur de 0 dans un anneau ( A, + , × ) si x est non nul et si il
existe x’ dans A, non nul, tel que : x × x' =
0.
Si x était inversible, il existerait x ‘’ tel que :
x × x" = x"× x = 1 ⇒ x"× x × x' = x"× 0 = 0 ⇒ x' = 0 , ce qui contredit la définition.
Le même phénomène se produit dans l’ensemble des matrices réelles carrées d’ordre
0 1 0 1 0 0 
n:  × =.
0 0   0 0   0 0 

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 6


Arithmétique et codes secrets 7

2.3 Corps
Définition Un corps K est un ensemble muni de deux lois de composition internes
notées + et • , telles que :
- (K, +, • ) est un anneau unitaire. On note K ∗ les éléments de K différents de
l’élément neutre (pour la loi +) ;
- K ∗ est un groupe pour la loi •.
Si la loi • est commutative, on dit que le corps est commutatif 1.

Remarques : Un corps contient au moins deux éléments (les éléments neutres des
deux lois). Dans un corps tout élément (distinct de l’élément neutre de la loi +) admet
un symétrique, alors que ce n’est pas toujours le cas pour un anneau unitaire.

2.3.1 Exemples et contre exemples


L’ensemble  n’est pas un corps : 2 n’a pas d’inverse pour la multiplication.
L’ensemble des matrices réelles carrées d’ordre n (pour n ≥ 2 ), n’est pas un corps.
Avec les lois écrites ci-dessus, l’ensemble B = {0,1} est un corps. C’est le plus petit
corps possible. La théorie des codes correcteurs d’erreurs utilise des espaces
vectoriels de dimension finie sur ce corps B. Cette théorie permet de corriger des
erreurs dues à la transmission d’une information, par l’ajout d’éléments redondants.
L’anneau G = {0,1,2,3} =  n’est pas un corps car on voit dans la table donnant
4
la multiplication que 2 n’a pas d’inverse.
Les corps les plus utilisés sont  , corps des réels et  , corps des complexes. Dans
ce cours on utilisera le corps  où p est un entier premier (cf. V.6).
p

Remarque : Dans un corps on peut « simplifier » par tout élément non nul. C’est une
structure bien adaptée aux calculs. Ce qui ne signifie pas que toute équation
algébrique dans un corps admette des solutions. Ainsi l’équation x 2 + 1 =0 n’a pas
de solution dans  . Ceci a conduit à l’introduction de  .
Z ! Dans le corps B = {0,1} , l’équation x 2 + 1 =0 admet x = 1 comme solution !

On montre que tout corps fini est commutatif. Donc si un corps est non commutatif, alors il
1

n’est pas fini.

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 7


Arithmétique et codes secrets 8

3 Relation d’équivalence, structure quotient


3.1 Définition
Soit X un ensemble non vide. Une relation binaire R sur X est une relation
d’équivalence si elle est :
• réflexive, c’est-à-dire ∀x ∈ X , xRx
• symétrique, c’est-à-dire ∀x, y ∈ X , xRy ⇒ yRx
• transitive, c’est-à-dire ∀x, y , z ∈ X , xRy et yRz ⇒ xRz
La notation habituelle d’une relation d’équivalence est : 

Exemples
Soit X l’ensemble (fini) des élèves inscrits en premier cycle à l’INSA. On peut
considérer la relation d’équivalence R suivante : pour les étudiants x et y de X, on a
xRy si x et y appartiennent au même groupe {1, 2 ,.....,41 ,.., 201,...}.

En géométrie, on relie les couples de points (d’un espace « affine ») aux vecteurs
(de l’espace vectoriel associé) par la relation d’équivalence définie sur les bipoints :
( A,B)  (C ,D) ⇔ ABDC est un parallélogramme. Cette relation s’appelle
l’équipollence.

3.2 Classes d’équivalence


Définition Soit X un ensemble muni d’une relation d’équivalence R. Pour x dans X, la
classe d’équivalence de x est l’ensemble de tous les éléments de X équivalents à x.

On la note x .

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 8


Arithmétique et codes secrets 9

En regardant les différentes classes d’équivalence, on obtient une partition de X : si


• • • •
x, y ∈ X ⇒ x =y ou x ∩ y =∅.

Elèves de l’INSA

2 201

Réciproquement, si on donne directement une partition de X on obtient une relation


d’équivalence dans X. C’est le cas pour l’ensemble ci-dessus des étudiants inscrits en
premier cycle à l’INSA. Cet ensemble est ainsi structuré par la considération des
noms des groupes {1, 2 ,.....,41,.., 201,...} au lieu des noms des étudiants. Ce nouvel
ensemble {1, 2 ,.....,41,.., 201,...} est celui des classes d’équivalence et s’appelle
ensemble quotient par la relation d’équivalence.

3.3 Ensemble quotient


Définition Soit X un ensemble muni d’une relation d’équivalence R. L’ensemble
quotient de X par R, noté X , est l’ensemble formé par les classes d’équivalence.
R

3.3.1 Exemples
En géométrie, l’ensemble des bipoints d’un espace affine, muni de l’équipollence a
pour ensemble quotient l’espace vectoriel sous jacent.
En mécanique, les torseurs s’interprètent comme un espace quotient.
On considère dans l’espace affine de la géométrie, des parties de n vecteurs glissants
 
( Δi , vi )1≤i ≤n où Δi est une droite, Ai un point de cette droite et vi un vecteur
dont le support est Δi . On calcule les éléments de réduction en un point O : la
 n   n  
résultante R = ∑ vi et le moment (en =
O) M ∑ OAi ∧ vi de ce système de n
i =1 i =1
vecteurs glissants.
Avoir les mêmes éléments de réduction en un point est une relation d’équivalence sur
les systèmes de n vecteurs glissants. Par définition l’ensemble quotient est
l’ensemble des torseurs. On montre que c’est un espace vectoriel de dimension 6 sur
.
L’avantage qu’on tire de cette définition des torseurs est que, dans les problèmes de
mécanique générale, ce qui importe n’est pas la particularité d’un système de
vecteurs glissants, mais sa réduction en un point. C’est-à-dire que deux systèmes
distincts de vecteurs glissants équivalents, représentant des forces agissant sur un
solide, ont le même effet sur le mouvement de ce solide. C’est d’ailleurs pourquoi les
forces sont représentées par des vecteurs glissants (qui sont aussi des classes

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 9


Arithmétique et codes secrets 10

d’équivalence associées aux vecteurs liés, la notion de « vecteurs glissants »


représente les vecteurs des mathématiciens, définis dans le § ci-dessus) 2.

3.4 Quotient d’un groupe par un sous-groupe


Théorème Soit (G,+) un groupe commutatif, H un sous-groupe de G. Alors la
relation :
x, y ∈ G, x ≡ y ⇔ x − y ∈ H
est une relation d’équivalence sur G.
De plus, on peut munir l’ensemble quotient noté G
H d’une structure de groupe
commutatif.

Démonstration : la relation ≡ sur G est :


• réflexive : x − x = 0 ∈ H ⇒ x ≡ x
• symétrique : x − y + y − x = 0 ⇒ si ( x − y ) ∈ H , alors − ( x − y ) = y − x ∈ H
c’est-à-dire x ≡ y ⇒ y ≡ x
• transitive :
si x ≡ y et y ≡ z ⇒ x − y ∈ H et y − z ∈ H ⇒ x − y + y − z = x − z ∈ H ⇒ x ≡ z .
La relation ≡ est donc une relation d’équivalence sur G. Elle est de plus
« compatible » avec la loi +, c’est-à-dire que :
si x ≡ x' ⇒ x − x'∈ H ⇒ ( x + y ) − ( x'+ y ) ∈ H ⇒ x + y ≡ x'+ y , et donc :
si x ≡ x' et y ≡ y' ⇒ x + y ≡ x'+ y' . On peut donc choisir n’importe quel élément d’une
classe d’équivalence pour calculer des sommes. Ce qui permet de définir une

(nouvelle) loi + sur l’ensemble quotient G
H :

• •
Loi additive + sur G . On note x, .. les éléments de G 3
H H.

• • •
Par définition : x + y = 
x + y . Comme la relation ≡ est compatible avec la loi + de G,
• •
ce résultat ne dépend pas des représentants choisis pour x ou y . On vérifie alors

que G est un groupe commutatif pour + .
H
G •
 H , +  s’appelle groupe quotient de G par H.
 

Exemples
Les groupes  
2 et 4 déjà étudiés sont les groupes quotients correspondant
aux sous-groupes 2 et 4 de  .

Théorème Dans un groupe fini, l’ordre d’un sous-groupe divise l’ordre du groupe.

Merci au mécanicien Michel Fayet pour ces précisions.


2

Ces points sur les éléments et opérations des structures quotient deviennent inutiles lorsqu’il
3

n’y a plus de risque de confusion.

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 10


Arithmétique et codes secrets 11

Ceci est une conséquence de la partition d’un groupe en classes d’équivalence. En


effet, en gardant les notations G pour le groupe et H pour le sous-groupe, on
considère pour x fixé dans G, l’application :

φ : h ∈ H → φ( h) = x + h ∈ x .

Cette application est une bijection entre H et x , donc il y a le même nombre
d’éléments dans H et dans la classe de x. Ceci montre qu’il y a le même nombre
d’éléments dans chaque classe d’équivalence, ce nombre étant l’ordre de H. Les
classes d’équivalences formant une partition de G, le nombre d’éléments de G est
donc un multiple de celui du nombre d’éléments de H.

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 11


Arithmétique et codes secrets 12

4 Congruences dans 

4.1 Division euclidienne 4


Soient a et b entiers relatifs, avec b ≠ 0 . Alors il existe, des entiers relatifs q (quotient)
et r (reste) uniques tels que :
a = bq + r , 0 ≤ r < b .
Exemples
=
Pour a 17
= ,b 5 , on a 17 = 5 × 3 + 2 : donc q = 3 et r = 2 .
Pour a =
−17 ,b =
5 , on a −17 = 5 × ( −4) + 3 : donc q = −4 et r = 3 .
Pour a = 5 , on a −15 = 5 × ( −3) + 0 : donc q = −3 et r = 0 .
−15,b =
Pour a = 17 ,b = −5 , on a 17 = ( −5) × ( −3) + 2 : donc q = −3 et r = 2 .

4.2 Divisibilité dans 


a bq + r on obtient la notion de divisibilité :
Lorsque r=0 dans la relation =
Définition : pour a et b entiers relatifs, a est divisible par b, ou a est multiple de b
⇔ ∃q ∈  , a =bq .
Par exemple l’entier relatif –15 est divisible par 5.
Les entiers relatifs divisant –15 (ses diviseurs) sont : −15, −5, −3,1,3, 5,15 .

4.3 Sous-groupes additifs de 


Théorème Les sous-groupes additifs de  sont tous de la forme n .

En effet, on sait déjà que n est un sous-groupe additif de  . Soit maintenant


( G,+ ) un sous-groupe de (  ,+ ) . On va montrer que : ∃! n ∈  ,n =
G.
G
Si G est réduit à un élément (son élément neutre), alors = {=
0} 0  .
Si G n’est pas réduit à un élément, soit a ∈ G, a ≠ 0 . Alors soit a, soit –a est dans
 ∗ , et la partie G ∩  ∗ est non vide. Elle admet donc un plus petit élément n. Avec
les opérations des groupes, on a : n ⊂ G . Pour obtenir l’inclusion dans l’autre sens,
on part de x ∈ G . Par division euclidienne de x par n :
x = nq + r , 0 ≤ r < n
Donc r, différence de deux éléments de G, est dans G, tout en étant strictement
inférieur à n. Ceci n’est possible que si r = 0 , soit x = nq . D’où x est dans n et
G ⊂ n , ce qui achève la démonstration.

Divisibilité et sous-groupes de 
Théorème Pour a et b dans  , b divise a si et seulement si a ⊂ b .
Pour montrer cette équivalence, on revient à la définition de la divisibilité :
si b divise a ⇔ ∃q ∈  , a= bq ⇔ a ∈ b ⇔ a ⊂ b .

4
C’est en fait une propriété de  admise dans ce cours.

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 12


Arithmétique et codes secrets 13

Remarque certaines notions utilisant la divisibilité (PGCD, PPCM, identité de Bezout,


cf.§ VI), se démontrent de façon élégante en utilisant ces sous-groupes. Un autre
point de vue a été choisi dans ce cours.

4.4 Congruences dans 


Maintenant que les notions théoriques sont en place, on peut effectuer le quotient du
groupe (  , + ) par un sous-groupe n (ce sont ses seuls sous-groupes), avec n
entier non nul 5. Cette relation d’équivalence ≡ des groupes quotient s’appelle la
congruence modulo n.

Définitions équivalentes Soit n un entier non nul, x, y ∈  sont congrus modulo


• •
n ⇔ x − y ∈ n ⇔ x =y dans  n ⇔ x et y ont le même reste dans la division par
n.
Notations Lorsque x et y sont considérés comme dans  , on écrit x ≡ y [ n ] .
Lorsque on passe aux classes d’équivalences, on omet le « point » et on écrit : x = y
(dans 
n ).

Exemple 1 17 ≡ 2 ≡ −3 [5]
Exemple 2 Les solutions dans  de l’équation x ≡ 1 [ 31] sont : x =
1 + 31k , k ∈  .

4.5 Opérations sur les « congruences »


Dans ce §, n est fixé. Ajouter ou multiplier des congruences revient à travailler dans
 . Cet ensemble est déjà muni d’une structure de groupe commutatif. On définit
n
une multiplication comme on l’a fait pour l’addition. On a :
Théorème  ( )
n , + , × est un anneau commutatif unitaire.

2007
Exemple 1 : calculer le reste de la division par 7 de ( 2006 ) .
L’idée est de se placer dans 
7  , mais en utilisant les notations des congruences.
On commence par diviser 2006 par 7: 2006 =×7 286 + 4 , d’où
2007
2006 ≡ 4 ⇒ ( 2006 ) ≡ 4 2007 [7 ] . Or dans  7  , il n’y a que 7 éléments. On
étudie les différentes puissances de 4 :
4 2 ≡ 16 ≡ 2 [7 ] , 4 3 ≡ 2 × 4 ≡ 8 ≡ 1[7 ] .
Il suffit maintenant de diviser 2007 par 3 :

( )
669
2007 = 3 × 669 et 4 2007 ≡ 4 3×669 ≡ 4 3 ≡ (1)669 ≡ 1[7 ] .
2007
Donc le reste de la division par 7 de ( 2006 ) est 1.
2009
Exemple 2: calculer le reste de la division par 7 de ( 2008 ) .

Lorsque n=0, tous les entiers relatifs sont équivalents, la notion n’a donc pas d’intérêt. Dans
5

la suite on prendra n>0.

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 13


Arithmétique et codes secrets 14

On commence par diviser 2008 par 7: 2008 =×


7 286 + 6 , d’où
2009 2009 2009 2008
2008 ≡ 6 ≡ −1 [7 ] ⇒ ( 2008 ) ≡6 ≡ ( −1) ≡ ( −1) × ( −1) ≡ −1 ≡ 6 [7 ] .
2009
Donc le reste de la division par 7 de ( 2008 ) est 6.

Remarque : les calculs de division euclidienne ci-dessus s’effectuent avec une


2007 2009
petite calculette. Par contre, le calcul direct de ( 2006 ) ou de ( 2008 )
n’est pas possible sur une telle machine par dépassement de capacité.

Les cryptages utilisent fortement les congruences et de tels calculs d’exponentielles


pour de grands nombres. La méthode utilisée dans l’exemple est programmée en
informatique sous le nom d’exponentielle rapide.

4.6 Application des congruences à la divisibilité


On travaille à partir d’entiers naturels ( ∈  ) écrits en base 10. Les chiffres utilisés
sont les entiers de 0 à 9. Les critères de divisibilité par 2, par 5, par 10 sont bien
connus : on regarde si le dernier chiffre est divisible par 2 ou 5 (divisibilité par 2 ou 5),
ou si le nombre se termine par 0 (divisibilité par 10).
Divisibilité par 3 et 9 L’entier A est divisible par 3 (respectivement 9) si et seulement
si la somme de ses chiffres est divisible par 3 (respectivement 9).
A ak 10 k + ak −1 10 k −1 + ..... + a=
En effet, soit = 0 ak ak −1 ........a0 où ak .... sont les
chiffres de A. Comme 10 ≡ 1 [ 3] , les opérations sur la congruence modulo 3,
conduisent tout de suite à A ≡ ak + ak −1 + .... + a0 [ 3] d’où le résultat par définition
des congruences. On a de même, pour 9 : 10 ≡ 1 [9 ] .

Exercice Etablir un critère de divisibilité par 11.

4.7 Codages de tous les jours utilisant les congruences


Dans ce paragraphe, on appelle code un identifiant d’un objet ou d’une personne à
l’aide de chiffres ou de lettres (le nombre total des symboles utilisés étant petit : 20
par exemple). Les congruences sont utilisées pour contrôler de tels codes, en
détectant des erreurs lors des manipulations sur ces codes. En général, une « clef »
est calculée et termine la suite de chiffres ou lettres contenant l’information (et donc
fait partie du code). Il est facile de constater, contrairement à ce qu’affirment de
nombreux sites Internet, que des erreurs peuvent subsister, même si la clef est
correcte.
Voici quelques exemples de codages :

Code ISBN (International Standard Book Number)


C’est le nombre qui figure sur tous les livres édités. Il a été inventé dans les années
1960. Il est formé de 9 chiffres a1a2 ....a9 (compris entre 0 et 9), suivi d’un code c, avec
c reste modulo 11 du nombre a1 + 2a2 + ..... + 9a9 ≡ c [11] . Lorsque c = 10 , on note
X pour ce code. Des tirets séparent des groupes de chiffres. Le premier groupe

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 14


Arithmétique et codes secrets 15

représente la langue (0 pour l’anglais, 2 pour le français, 3 pour l’allemand..), le bloc


suivant représente l’éditeur (Springer-Verlag 540 en Allemagne et 387 aux Etats-Unis,
Dargaud 205…), le bloc suivant représente le numéro du livre chez l’éditeur (il reste
d’autant peu de place que l’éditeur a un gros numéro). Par exemple on a:
ISBN 3-540-50205-X et ISBN 0-387-50205-X pour «Mathematical Analysis and
Numerical Methods for Science and Technology» chez Springler-Verlag, en allemand
ou en anglais.
ISBN 2-205-00694-0 pour « Astérix en Corse » chez Dargaud.

Numéro national INSEE (NIR, numéro d’inscription au registre) Toutes les


personnes résidant en France se voient attribuer ce numéro, par exemple au moment
de passer le bac ou d’une immatriculation à la Sécurité Sociale. Il est formé de 13
chiffres plus une clef de 2 chiffres. Le premier code le sexe (1 ou 2), les deux suivants
l’année de naissance (les deux derniers chiffres : ce qui pose un problème pour les
centenaires), puis le mois de naissance (de 1 à 12), puis le numéro du département
de naissance (99 pour les personnes nées à l’étranger), puis le code de la commune
(3 chiffres, il existe un répertoire des communes), puis 3 chiffres correspondant au
numéro d’ordre sur le registre des naissances. La clef est 97 − B , où B est le reste de
la division par 97 du nombre A formé par ces 13 chiffres (cf. exercice distribué).

Numéro bancaire Comporte des indications sur la banque, le guichet,… ; il comporte


au total 21 chiffres.

Numéros de billets en euros Les numéros qui figurent sur les billets comportent un
code. Vous pouvez contrôler sur Internet la validité du numéro d’un billet.

4.8 Cryptographies historiques utilisant les congruences


Depuis la naissance de l’écriture, on a cherché à transmettre des informations de
façon secrète, c’est-à-dire qu’elles soient incompréhensibles même si elles sont
interceptées. Modifier ainsi un texte s’appelle chiffrer ou crypter 6 un document, et
l’ensemble des techniques relatives au chiffrement des textes constitue la
cryptographie. On a retrouvé des procédés cryptographiques dans les hiéroglyphes
égyptiens et dans les textes cunéiformes. Ces procédés sont alphabétiques, même si
leur explication est plus facile en les numérisant, c’est-à-dire en transformant les
symboles en chiffres. Actuellement les messages à crypter doivent emprunter les
réseaux informatiques, et les données sont transformées en une suite de « 0 » et
« 1 ». Le cryptage est alors une opération purement mathématique (cf. DES ci-
dessous et RSA VII.3).
Les cryptographies présentées dans les deux paragraphes suivants nécessitent que
l’expéditeur et le destinataire du message se partagent une information nécessaire au
chiffrement, puis au déchiffrement. Cette information est dite secrète, car elle permet
de décrypter les messages chiffrés. Ces techniques s’appellent donc à clef secrète.

On dit aussi coder un texte, mais ceci est générateur de confusion avec les codes correcteurs
6

d’erreurs.

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 15


Arithmétique et codes secrets 16

Voici tout d’abord, deux cryptographies « historiques ». Elles utilisent les lettres de
l’alphabet de la langue considérée et quelques signes de ponctuation. On a choisi ci-
dessous les 26 lettres de l’alphabet français et un signe de ponctuation : l‘espace.

Le cryptage de Jules César On a donc comme symboles : les 26 lettres de


l’alphabet (romain) dans l’ordre et 1 signe de ponctuation :
a, b, c,……,x,y,z, espace.
Le message est obtenu en décalant de 3 unités chaque symbole, les symboles de la
fin étant remplacés par les trois lettres du début. Par exemple « a » devient « d »,
« espace » devient « c ». Le décryptage est un décalage dans l’autre sens.
Mathématiquement, ceci revient à transcrire les 27 symboles par les nombres de 1 à
27. Le décalage de 3, revient à ajouter 3 modulo 27. Le décryptage est une
soustraction de 3 modulo 27.
Exercice Le message est M = MATHEMATIQUES ET CODAGES. Ecrire le texte
crypté C.
Dans ce cryptage, la clef secrète est le nombre 3 (de décalage). On a de la peine à
croire qu’a l’époque de Jules César, ce cryptage ait vraiment permis le secret des
données échangées !

4.8.1 Le cryptage de Vigénère


Ce cryptage, qui est une amélioration du système de César, utilise les 27 symboles
ci-dessus, et pour crypter (au lieu de décaler de trois) utilise un texte K (qui doit être
connu du chiffreur et du déchiffreur, et qui du temps de Vigenère etait court par
rapport au texte à chiffrer). Les lettres du texte K sont placées sous celles du texte à
chiffrer, et donnent le nombre de décalages à effectuer.
Mathématiquement, le texte à chiffrer M est transformé en une liste de nombres de 1
à 27, sous laquelle on met la liste des nombres (de 1 à 27) de K, autant de fois qu’il
est nécessaire. Le texte crypté C est constitué des sommes modulo 27 de ces deux
listes. Pour décrypter le texte il suffit d’effectuer la différence modulo 27 entre C est la
liste correspondant à K.
Exercice Le message est M = MATHEMATIQUES ET CODAGES. La clef de
cryptage du texte est K =INSA. Ecrire le texte crypté C.
Dans ce cryptage, la clef secrète est le texte K.
On voit tout de suite que décrypter un texte crypté à l’aide du cryptage de Vigenère,
sans connaître K (en particulier sans connaître sa longueur) est autrement plus
difficile que pour le cryptage de Jules César, car une même lettre du message sera
transformée en des lettres différentes dans le message chiffré, en fonction de sa
position par rapport aux lettres de K.

Pour « casser un code », c’est-à-dire décrypter un tel message sans connaître la clef
K, les « cryptanalistes » utilisent des propriétés des langues (comme la fréquence de
la voyelle « e » en français) ou des redondances dans les messages. La machine
ENIGMA, utilisée par l’armée allemande à partir des années 1930 et durant la guerre
de 39-45 est fondée sur ce principe, avec un texte T changeant à chaque utilisation.
Le cryptage du message était obtenu grâce à des rotations de rotors. L’armée
allemande était convaincue de l’inviolabilité de sa machine, alors que des

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 16


Arithmétique et codes secrets 17

mathématiciens polonais avaient réussi à « casser » son code dès 1932. Mais l’armée
allemande améliorait sans cesse son procédé 7….

La grande faiblesse de ces systèmes à clef secrète est d’être fondés sur des clefs K
que doivent connaître les émetteurs et récepteurs du message. Et lorsque ces clefs
sont interceptées, tout le système s’effondre.

4.9 Cryptographies actuelles fondées sur les


congruences : DES
Le DES (Data Encryption Standard), qui date de 1976, est l’algorithme de cryptage le
plus utilisé actuellement. Il est très rapide, mais commence à être cassé, dans sa
configuration à 64 bits. C’est un algorithme à clef secrète, avec des machines
identiques pour crypter et décrypter, les algorithmes étant câblés dans ces machines.
Une clef de 56 bits est utilisée, ainsi qu’une fonction de hachage (cf. VIII.5). Les
opérations mathématiques sont des transpositions et des permutations dans  ,
2
itérées un grand nombre de fois.

4.9.1 Masque jetable


C’est la seule cryptographie considérée comme « incassable » actuellement. On
utilise pour un texte numérisé (des 0 et des 1) une technique du type du cryptage de
Vigénère, mais avec une clef K de même longueur que le texte à crypter, obtenue de
façon aléatoire (il faut savoir générer de façon aléatoire une suite formée de 0 et de
1). De plus, cette clef ne doit servir qu’une fois !
Mais comme ce système est à clef secrète, le problème de transmission d’une telle
clef rend ce système incompatible pour les transmissions numérisées actuelles, mais
reste utilisé lorsque la « valise diplomatique » permet la transmission de la clef.

Ceux qui sont intéressés par ce problème historique peuvent consulter : HISTOIRE DES
7

CODES SECRETS, par Simon SINGH, Le livre de Poche.

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 17


Arithmétique et codes secrets 18

5 Nombres Premiers
5.1 Définition
Un entier relatif n est premier si il admet exactement 4 diviseurs dans  : 1,-1, n et –
n. Si n est un entier naturel, il est premier si il admet, dans  , deux diviseurs 1 et lui
même 8.
On en déduit que 1 n’est pas premier. L’entier 2 est le seul entier naturel premier pair.
Si n > 1 et n non premier, n est dit composé. Tous les entiers pairs (sauf 2 et -2)
admettent 2 comme diviseur, donc sont composés.

5.2 L’ensemble des nombres premiers est infini


Théorème 9 Tout entier distinct de 1 ou –1, admet un diviseur premier.

Application : second théorème d’Euclide L’ensemble des nombres premiers est


infini.
La démonstration est intéressante. Si l’ensemble des nombres premiers positifs était
fini, cet ensemble aurait un plus grand élément n. On peut alors considérer le nombre
n'
= n!+ 1 .
Si n’ est premier, on a trouvé un entier premier strictement supérieur à n, ce qui
contredit la définition de n. Donc n’ est composé, et il admet un diviseur premier p. Si
p est un des facteurs 1, 2, …, n de n! , alors 1 serait divisible par p, ce qui n’est pas
possible. Donc p n’est pas un des facteurs de n! , donc il est supérieur à n ; on a
donc trouvé un entier p premier strictement supérieur à n. Dans ce cas aussi on arrive
à une contradiction.

Cette démonstration montre qu’il existe des nombres premiers ayant autant de
chiffres que l’on désire, même si elle ne donne pas un procédé pour les trouver. Par
1000 000
exemple, soit n = 10 . Le nombre n'
= n!+ 1 est soit premier, soit admet un
diviseur premier supérieur à n. Ce nombre premier a donc plus d’un million de
chiffres. La recherche de « grands » nombres premiers est essentielle pour la sécurité
des cryptages actuels (cf. RSA, §VII).

5.3 Crible d’Eratosthène


Quelles sont les méthodes pour trouver des nombres naturels premiers? Eratosthène,
mathématicien et philosophe grec a proposé une méthode permettant, à partir d’une
liste ordonnée de nombres entiers naturels, d’extraire ceux qui ne sont pas premiers.
On part du premier nombre premier 2, qu’on laisse dans le tableau alors qu’on raye
tous ses multiples. Le nombre 3 est dans le tableau ; on le laisse et on raye tous ses
multiples. Le nombre 4 ayant été rayé, le nombre suivant est premier : il s’agit de 5

Lorsque la structure d’anneau est inutile, les entiers utilisés sont des entiers naturels. Les
8

définitions et résultats sont alors acquis pour les entiers relatifs en « ajoutant le signe ».
Pour les démonstrations qui ne figurent pas dans ce texte, se rapporter à un bon cours de
9

terminale.

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 18


Arithmétique et codes secrets 19

pour lequel on agit comme pour 2. Pour savoir où arrêter la recherche, on utilise le
lemme :
Lemme Tout entier n > 1 non premier admet au moins un diviseur premier.

Alors, les nombres qui restent sont premiers :

Table des nombres premiers entre 2 et 100


0 1 2 3 4 5 6 7 8 9
0 2 3 5 7
1 11 13 17 19
2 23 29
3 31 37
4 41 43 47
5 53 59
6 61 67
7 71 73 79
8 83 89
9 97

Un nombre n compris entre 100 et 10000 est-il premier ? Un de ses diviseurs premiers
p vérifie p 2 ≤ n , soit p 2 ≤ 10000, d’où p ≤ 100 et p figure dans la table ci-dessus. On
effectue donc les divisions successives de n par les nombres de la table. Si un des
restes est nul, n est composé ; sinon on arrête les divisions lorsque le diviseur est
supérieur à n . Par exemple, pour n = 491 , on constate que 491 n’est pas divisible
2
par 2, 3, 5, 7, 11, 13, 17, 19 et 23. Or 23
= 529 > 491 . Donc 491 est premier.

Le logiciel MAPLE permet de savoir si un entier, pas très grand est premier.
Des méthodes probabilistes (cf Miller Rabin VIII.7) permettent de savoir si un nombre
donné a une chance d’être premier.
Historiquement, la recherche de « formules » permettant d’obtenir des nombres
premiers a donné lieu à beaucoup de conjectures inexactes (cf. en exercice les nombres
de Mersenne et les nombres de Fermat).

5.4 Décomposition en facteurs premiers


Théorème Pour tout entier n>1, il existe des entiers p1 , p2 ,...., pk et des entiers
α α α
α1 ,α2 ,...,αk tels que n = p11 p22 ......pk k . Cette écriture s’appelle décomposition de n
en facteurs premiers.
Si on choisit p1 < p2 < .... < pk , la décomposition est unique.
Exemples 920 = 23 × 5 × 23, 11011 = 7 × 112 × 13

Le logiciel MAPLE permet de connaitre les diviseurs d’un entier pas très grand.
Conséquence sur la divisibilité Si un nombre premier p divise n, ce nombre est un
des facteurs premiers de n.

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 19


Arithmétique et codes secrets 20

5.5 Diviseurs d’un entier


Théorème Pour tout entier n>1, de décomposition en facteurs premiers
α α α
n = p11 p22 ......pk k , l’ensemble des diviseurs de n est l’ensemble des entiers d dont la
b b b
décomposition en facteurs premiers est d = ± p11 p22 ......pkk , 0 ≤ bk ≤ ak . Il y a
N =+(1 a1 )(1 + a2 )...(1 + ak ) diviseurs positifs.
Exemple 680 = 23 × 5 × 17 , liste des diviseurs positifs :
{1,2,4, 5,8,10,17 ,20,34,40,68,80,85,136,170,340} soit 4 × 2 × 2 =16 diviseurs.

5.6 Corps  p

Théorème L’anneau  ( )
p , + , × est un corps si et seulement si p est premier.
Démonstration Pour montrer cette équivalence on examine les différentes
possibilités pour l’entier p.
Si p n’est pas premier, on a les cas suivants :
si p=0, 0  = {0} . Le quotient est  lui même qui n’est pas un corps.
• 
si p=1, 
 0  n’ a qu’un élément et n’est donc pas un corps.
=
 
p dq, 1 < d < p, 1 < q < p . Donc dans
si p>2 est composé, il existe d et q tels que =
• • •• •

p , p= 0= d q , c’est-à-dire que d est un diviseur de zéro et n’a donc pas
d’inverse. L’anneau n’est donc pas un corps.
• •
Si p est premier, il reste à montrer que tout x ≠ 0 est inversible dans l’anneau 
p ,
• • • •
c’est-à-dire qu’il existe u tel que x .u = 1 , d’où ∃v ∈  , ux − 1= pv ⇔ ux − pv= 1
Cette relation est l’identité de Bezout, dont la preuve est faite au §VI.4.

Application : Pour a, b et p entiers relatifs, si p premier divise le produit ab, alors p


divise a ou p divise b.
Contre exemple 6 divise 12= 3 × 4 , mais 6 ne divise ni 4, ni 3 (6 n’est pas premier).

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 20


Arithmétique et codes secrets 21

6 Entiers premiers entre eux


6.1 PGCD
Définition On donne deux entiers (naturels) a et b que l’on décompose en facteurs
premiers, puis on introduit tous les nombres premiers communs à a et b. Les nombres
a et b s’écrivent alors :
α α α b b b
=a p11 p22 ......pk k , 0 ≤ ai=
, 0 ≤ i ≤ k , b p11 p22 ......pkk , 0 ≤ bi , 0 ≤ i ≤ k .
L’ensemble des diviseurs communs à a et b est alors :
d d d
{ p1 1 p2 2 ......pk k , 0 ≤ di ≤ ai , 0 ≤ di ≤ bi ,0 ≤ i ≤ k} .
On peut en déduire que le plus grand (au sens de la division) des diviseurs de a et b,
δ δ δ
a,b) est δ p11 p22=
soit δ = PGCD(= ......pkk , δi min( ai , bi ), 0 ≤ i ≤ k .

Remarque 1 : cette définition s’étend aux entiers relatifs, mais on choisit le


PGCD positif. Par convention on pose PGCD(0,0) = 0 . Cette définition
s’étend aussi à plusieurs entiers.

Remarque 2 : voici un exemple de démonstration utilisant les sous-groupes


additifs de  . Pour a et b dans  , a + b est un sous-groupe additif de
 . Il existe donc un unique entier relatif δ tel que aδ + b = . Cet entier
δ est le plus grand commun diviseur de a et b.
En effet a = a +δ 0 ∈ aa + δb = a ⇒ δ∈  ⇒  ⊂  , soit δ divise a (et b).
Si d divise a et b, alors a ⊂δd , ba ⊂ bd ⇒d  =  +  ⊂  soit d divise δ .
Le PGCD est donc le « plus grand » pour la division.

Exemple Dans la simplification des fractions, on peut chercher les facteurs communs
à l’aide de la décomposition en facteurs premiers :
168 23 × 3 × 7 23 × 3 56
= et PGCD(168,721)=7 : la fraction simplifiée est = .
721 7 × 103 103 103
Pour des nombres plus grands on utilise l’algorithme d’Euclide (cf. §VI.3).

Propriétés du PGCD
PGCD( a,b) = PGCD(b, a)
PGCD(
= a,0) PGCD(
= a, a) a
Si b divise a, PGCD( a,b) = b .

6.2 Entiers premiers entre eux


Définition Deux entiers relatifs a et b sont premiers entre eux, ou étrangers, si leur
PGCD est égal à 1.

Z ! Cette notion est très importante. Ne pas la confondre avec celle de


nombre premier. Les nombres sont « étrangers » car ils n’ont plus de
facteur >1 « en commun ».

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 21


Arithmétique et codes secrets 22

Cette définition s’étend aussi à plusieurs entiers (entiers premiers ou étrangers dans
leur ensemble).

Exemples
Si p est un nombre premier, si n n’est pas multiple de p, alors n et p sont premiers
entre eux.

915 = 3 × 5 × 61 et 901
= 17 × 53 ne sont pas premiers, mais sont premiers entre eux,
car ils n’ont aucun facteur premier en commun (leur PGCD est 1). Le nombre 5 est
premier, il est premier avec 901. Le nombre 5 n’est pas avec premier avec 915 car
915 est un multiple de 5. Néanmoins, les nombres 47, 901 et 915 sont premiers dans
leur ensemble car ils n’ont aucun facteur en commun.

6.3 Algorithme d’Euclide


Décomposer en facteurs premiers des entiers est facile pour des « petits » entiers.
Mais la recherche devient très longue, voire impossible, pour les « grands » nombres.
C’est même sur cette impossibilité que sont actuellement fondés les algorithmes de
cryptage. L’algorithme d’Euclide, facile à programmer et qui n’utilise pas la
décomposition en facteurs premiers, permet d’obtenir directement le PGCD de deux
entiers >0.

Lemme Pour a,b,q,r entiers naturels, vérifiant a = bq + r , b ≠ 0, 0 ≤ r < b (division


euclidienne de a par b), on a : PGCD( a,b) = PGCD(b,r ) .

Algorithme : on effectue des divisions successives jusqu’à trouver un reste nul. Le


PGCD est le dernier reste non nul.
On part de a et b, avec a ≥ b > 0 . On effectue la division euclidienne de a par b :
∃q1 ∈  , ∃r1 ∈  a= bq1 + r1 , 0 ≤ r1 < b .
Si r1 = 0 , PGCD(
= a,b) PGCD(b,r
= 1 ) b , et on stoppe les divisions.
Si r1 > 0 , PGCD( a,b) = PGCD(b,r1 ) et on se retrouve dans la situation initiale, a
étant remplacé par b et b par r1 . On introduit alors r2 , vérifiant 0 ≤ r2 < r1 < b , et on
continue les divisions si nécessaire.
On obtient ainsi une suite strictement décroissante de restes, qui sont des entiers.
Donc au bout d’une nombre fini d’opérations, on obtient un reste nul, soit rk +1 = 0 .
C’est-à-dire: rk=− 2 rk −1q k + rk , 0 < rk < ... < b et pour la dernière division
rk −1 rk q k +1 + rk +1 , avec rk +1 = 0 . D’après le lemme :
=
PGCD( a,b)= PGCD(b,r1 = ) ...= PGCD(rk ,rk +1 = ) PGCD(rk ,0)= rk .

Exemple : recherche du PGCD de 437 et 1969


1969 =× 4 437 + 221
437 = 1 × 221 + 216
221 = 1 × 216 + 5
216 = 43 × 5 + 1
5 = 5 ×1+ 0

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 22


Arithmétique et codes secrets 23

D’où PGCD( 437 ,1969) = 1 , dernier reste non nul, les nombres 437 et 1969 sont
premiers entre eux.

Remarque : le calcul ci-dessus semble inutile car en utilisant la table §


Erreur ! Source du renvoi introuvable. : 1969=11.179 et 437=19.23, on voit
tout de suite que ces nombres sont premiers entre eux. En pratique, on se sert
de cet algorithme en « remontant les calculs », pour obtenir :
392 × 437 − 87 × 1969 = 1 (cf. Identité de Bezout ci-dessous).

6.4 Identité de Bezout


C’est un théorème fondamental, avec de nombreuses applications, car cette identité
permet de caractériser les nombres premiers entre eux.
Pour a et b dans  , on a les équivalences :
a et b premiers entre eux ⇔ PGCD( a,b) = 1 ⇔ ∃u, v ∈  au + bv = 1 .

Démonstration sous forme d’algorithme : reprend l’algorithme d’Euclide (§


précédent), avec l’hypothèse que a et b sont premiers entre eux. Le dernier reste non
nul rk est égal à 1 :
1 rk= rk − 2 − rk −1q k
=
On remonte alors les lignes de calcul en exprimant rk=
−1 rk − 3 − rk − 2q k −1 , et en
remplaçant :
1 =rk =rk − 2 − rk −1q k =rk − 2 − (rk − 3 − rk − 2q k −1 )q k …..
D’où, à la fin des remplacements, le nombre 1 s’exprime comme combinaison linéaire
de a et b.

6.4.1 Conséquences de l’identité de Bezout


1) Sens « direct », c’est-à-dire pour trouver u et v tels que au + bv =
1.
Pour des petits entiers, par essais (u et v tels que 17u + 35v = 1, u =
−2, v =
1 ).
Rigoureusement, ceci revient à travailler dans l’anneau 
a (cf. ci-dessous)
Utilisation de l’algorithme d’Euclide Trouver u et v tels que 437u + 241v = 1 . On
effectue les calculs comme pour la recherche du PGCD 10 :
Calcul du PGCD( 437 ,241) .
437 = 1 × 241 + 196
241 = 1 × 196 + 45
196 =4 × 45 + 16
45 =2 × 16 + 13
16 =1 × 13 + 3
13 = 4 × 3 + 1
3 = 3×1 + 0

Le nombre 241 est premier et 437 n’est pas un multiple de 241, donc on doit trouver
10

PGCD(241,437)=1

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 23


Arithmétique et codes secrets 24

Le dernier reste non nul est 1 (on peut ne pas écrire cette dernière division), donc
PGCD( 437 ,241) = 1 , on reprend alors les calculs en partant de la fin :

13 = 3 × 4 + 1 ⇒ 1 = 13 − 3 × 4, 16 = 1 × 13 + 3 ⇒ 3 = 16 − 1 × 13 ⇒ 1 = 13 × 5 − 4 × 16
45 = 2 × 16 + 13 ⇒ 13 = 45 − 2 × 16 ⇒ 1 = 5 × 45 − 14 × 16
196 =4 × 45 + 16 ⇒ 16 =196 − 4 × 45 ⇒ 1 =−14 × 196 + 61 × 45
241 = 1 × 196 + 45 ⇒ 45 = 61 × 241 − 75 × 196 ⇒ 1 =−52 × 241 + 38 × 196
437 = 1 × 241 + 196 ⇒ 196 = 437 − 1 × 241 ⇒ 1 = −75 × 437 + 136 × 241
Cette dernière égalité donne les entiers u = −75 et v = 136 cherchés.
Ces calculs sont laborieux « à la main ». On peut s’aider d’une calculette, ou…utiliser
un logiciel comme Maple (commande igcdex).

2) Sens inverse, où on part de l’identité de Bezout :


On sait que : 2010 − 2009 = 1 , on peut déduire que 2009 et 2010 sont premiers entre
eux.

3) Il n’y a pas unicité des entiers relatifs u et v.


Si u0 , v0 conviennent : au0 + bv0 =1, au + bv =1 ⇒ a(u − u0 ) + b( v − v0 ) =0 . Il suffit
de choisir : u =u0 + bk , v =v0 − ak , k ∈  .

4) Contre exemple : l’équation 6u + 93v = 1 n’a pas de solution, car


PGCD(6,93) = 3 .
Si on reprend la démonstration, on obtient des solutions pour au + bv =
d où d est un
multiple de PGCD( a,b) .

5) On démontre avec l’Identité de Bezout plusieurs propriétés utiles pour la


suite
Si a est premier avec b et c, alors a est premier avec le produit bc.
Il suffit d’exprimer les hypothèses au + bv= 1, au'+ cv'= 1
⇒ ( au + bv)( au'+ cv') ==
1 a( auu'+ cuv'+ bu'v) + bc( vv')

Théorème de Gauss
Si a est premier avec b et a divise le produit bc alors a divise c.
En effet au + bv
= 1, cau + cbv= c ; or a divise cau et a divise bc, donc a divise
c cau + cbv .
=

On utilisera souvent la propriété suivante, dite propriété du produit :


Si p et q sont premiers entre eux, et si p et q divisent un entier m, alors le
produit pq divise m.
En effet up + vq =1 ⇒ upm + vqm =m ; or m =ap =bq ⇒ pq(ub + va) =m .

6.5 Eléments inversibles dans  n


Théorème L’ensemble des éléments inversibles de l’anneau 
n pour n ≥ 2 , est

l’ensemble des x où x est premier avec n.

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 24


Arithmétique et codes secrets 25


En effet, x est inversible de l’anneau 
n
• • • •
⇔ ∃ x'∈  n , x .x' =1
⇔ ∃x'∈  , x.x' ≡ 1 [ n] ⇔ ∃x', k ∈  , x.x'− k.n =1
où on reconnaît l’identité de Bezout, c’est-à-dire que x et n sont premiers entre eux.

Remarque Si p est premier, tous les éléments non nuls sont inversibles, car p
est premier avec 1,2,...,( p − 1) . D’où la structure de corps de  .
p
Exemple d’utilisation pour « résoudre » l’identité de Bezout avec a=17 et b=25.
1 , revient à résoudre 25v ≡ 1 [17 ] , donc à trouver
Trouver u et v vérifiant 17u + 25v =
• • • •
l’inverse de 25 = 8 dans le corps  . Or 17 − 2 × 8 =1 , donc −2 =15 est
17 

l’inverse de 8 . Donc 15 est solution de 25v ≡ 1 [17 ] .
On vérifie que 25 × 15 − 1 = 374 est divisible par 17 : 374
= 22 × 17 , et on obtient :
25 × 15 − 22 × 17 = 1 , soit v = 15 et u = −22 .
Cette technique est plus rapide que l’algorithme d’Euclide étendu lorsqu’un des deux
entiers de l’Identité de Bezout n’est pas trop grand.

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 25


Arithmétique et codes secrets 26

7 Théorèmes pour la cryptographie


7.1 Théorème (des restes) chinois
L’auteur de ce théorème est inconnu, mais le premier à le formuler est le
mathématicien chinois Maître Sunzi, au 3ème siècle. Le problème qui a donné son nom
au théorème est, par exemple :
Trouver un entier dont le reste dans la division par 3 est 2, le reste dans la division
par 5 est 3, le reste dans la division par 7 est 2. Les nombres trouvés sont 233, puis
23 (qui conviennent). Le même théorème est cité par Nicomaque, Euler, Gauss et
peut servir a établir des calendriers, en coordonnant les périodicités du mouvement
des planètes.
Voici un exemple utilisant les mêmes valeurs numériques :
Un évènement E se produit le 2ème jour tous les 7 jours, et un évènement E’ se produit
le 3ème jour tous les 5 jours. Existe-t-il des jours où E et E’ se produisent en même
temps ? La réponse est oui, le 23ème jour (c. f. le calcul ci-dessous).

Théorème Pour a, b, m, n entiers relatifs, n et m étant premiers entre eux, il existe un


entier relatif c, tel que le système :
x ≡ a [ m]

x ≡ b [n]
admette pour solutions x ≡ c [m.n] .
Remarque : on peut choisir un représentant de c dans [0,1,...,mn − 1]
puisqu’on est dans l’anneau 
mn , et c est alors unique.

Démonstration ∃u, v ∈  , mu + nv =1 ⇒ amu + anv =a ⇒ anv ≡ a [ m] .


De même mu + nv =1 ⇒ bmu + bnv =b ⇒ bmu ≡ b [ n ] . On pose alors
=c anv + bmu qui vérifie c ≡ a [ m] et c ≡ b [ n] .
x ≡ a [ m] c ≡ a [ m] x − c ≡ 0 [ m]
Réciproquement, si  et  alors  .
x ≡ b [n] c ≡ b [n] x −c ≡ 0 [n]
Donc m et n divisent (x-c), m et n étant premiers entre eux, donc le produit m.n divise
(x-c) (propriété du produit) soit x ≡ c [ mn ] .

x ≡ 3 [5]
Exemple 1 Trouver les valeurs de x telles que :  .
x ≡ 2 [7 ]
Il faut déterminer la valeur c du théorème, donc suivre la méthode exposée dans la
démonstration, donc « résoudre » encore une fois « Bezout ».
On commence par constater que 5 et 7 sont premiers entre eux, avec 3 × 5 − 2 × 7 =1,
donc ici a = 3, b = 2, m = 5, n = 7 , u = 3, v = −2 .
D’où c =anv + bmu =−42 + 30 =−12 et −12 ≡ −12 + 35 ≡ 23 ≡ 233 [ 35 ] .
D’après le théorème chinois l’ensemble des solutions est 23 + 35k , k ∈  .

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 26


Arithmétique et codes secrets 27

Exemple 2 11 Au milieu du XXème siècle des machines étaient utilisées pour


crypter/décrypter. Ces machines étaient constituées de roues dentées. Les machines
« FISCH » utilisaient cinq roues ayant 41, 31, 29, 26 et 23 dents. Ces cinq nombres
étant premiers entre eux, la période du dispositif est donc le produit de ces nombres,
qui est supérieur à 22 × 106 , d’où 22 × 106 possibilités différentes pour crypter un
message.

7.2 Théorème de Fermat 12


Il a été conjecturé par Fermat en 1640, montré par Leibniz avant 1683, remontré et
publié par Euler en 1736.
p
Théorème Pour a et p entiers relatifs, p premier, a ≡ a [ p] .
p −1
Corollaire Pour a et p entiers relatifs, p premier ne divisant pas a, a ≡1 [ p] .

Démonstration : on établit d’abord deux lemmes.


Lemme 1 si p est premier alors C pk ≡ 0 [ p ] , 1 ≤ k ≤ p − 1 .
p!
En effet C pk = ⇒ k !( p − k )!C pk =p! =p × ( p − 1)! , donc p divise
k !( p − k )!
k !( p − k )!C pk . Or les entiers du produit k !( p − k )! sont inférieurs à p, donc p ne les
divise pas, donc p divise C pk .
p p p
Lemme 2 si p est premier, a et b entiers relatifs alors ( a + b ) ≡ a + b [ p] .
En effet la formule du binôme est vérifiée dans l’anneau commutatif (  , + , × ) ,
n n −1

=
p

k 0=

( a + b ) = C p a b =a + C pk a pb p − k
k p p−k p

k 1
∑ + b p , les termes du milieu étant

congrus à 0 modulo p d’après le lemme 1.

7.2.1 Démonstration du théorème (cf. une démonstration utilisant


l’ordre d’un sous-groupe sur les fiches d’exercices.)
Si a ≥ 0 , une récurrence sur l’entier a conduit au résultat :
En effet , la propriété est vérifiée pour a=0.
De plus, si elle est vérifiée pour a, soit a ≡ a
p
[ p] , alors ( a + 1) p ≡ a p + 1 ≡ a + 1 ,
d’où la propriété est vraie pour (a+1).

Si a < 0 , on examine deux cas pour p :

in La science du secret, page 56, cf. bibliographie.


11

Il s’agit ici du petit théorème de Fermat. Le grand théorème de Fermat est resté une
12

conjecture durant plusieurs siècles, jusqu’à sa démonstration (en 1994) par Andrew Wiles.

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 27


Arithmétique et codes secrets 28

si p est pair, c’est-à-dire p=2 (seul nombre premier pair),


a2 ≡ ( − a)2 ≡ − a ≡ a [ 2]
p p
si p est impair a ≡ −( − a) ≡ −( − a) ≡ a [ p ]
Ce qui termine la démonstration, tous les cas ayant été examinés.

Démonstration du corollaire
p
La relation a ≡ a [ p] s’interprète comme ap − a ≡ 0 [ p] , c’est-à-dire que p divise
a p= ( )
− a a a p −1 − 1 . Or p ne divise pas a, donc p est premier avec a. D’après le

théorème de Gauss, p divise a ( p−1 − 1) soit ap−1 ≡ 1 [ p] .


Exemples Le nombre 19 est premier et ne divise pas 3, donc 318 ≡ 1 [19 ] , c’est-à-dire
que 19 divise 318 − 1 . Ce résultat peut être vérifié à la main, en utilisant
l’exponentielle rapide (cf. IV.5), car les chiffres du nombre 318 − 1 ne peuvent pas être
traités par une calculette :
33 ≡ 27 ≡ 8 [19 ] , 36 ≡ (8)2 ≡ 7 [19 ] ,39 ≡ 7 × 8 ≡ −1 [19 ] , d’où 318 ≡ ( −1)2 ≡ 1 [19 ] .
Réciproquement, si on veut tester si un nombre p n’est pas premier, on peut essayer
p −1
différentes valeurs de a jusqu’à trouver une valeur telle que a ≠ 1 [ p] .
Par exemple 9 n’est pas premier, bien que l’on ait 10 8 ≡ 1 [9 ] car 10 ≡ 1 [9 ] . Mais
23 ≡ −1 [9 ] ⇒ 28 ≡ 1 × 4 ≡ 4 [9 ] , donc non congru à 1 modulo 9. Le petit théorème de
Fermat n’est donc pas vérifié, 9 n’est pas premier.

7.2.2 Recherche « statistique » de nombres premiers 13


L’idée d’utiliser ce théorème est mise en œuvre pour « vérifier » de façon statistique
qu’un nombre très grand N n’est pas composé. On effectue des essais avec différentes
p −1
valeurs de a. Au bout d’un certain nombre d’essais, si on a toujours a ≡ 1 [ p ] , la
probabilité pour que N soit premier est forte. Mais il faut croiser la preuve avec
d’autres théorèmes, car il existe des nombres c, dits de Carmichael qui sont composés,
et tels que ac −1 ≡ 1 [c ] pour tout entier a premier avec c. Les deux plus petits sont
561 =3 × 11 × 17 et 1105 =5 × 13 × 17 (cf. fiche d’exercices), mais les nombres de
Carmichael n’ont pas livré tous leurs secrets !

7.3 RSA
L’invention du système de cryptographie « RSA », du nom de ses inventeurs, Ronald
Rivest, Adi Shamir et Leonard Adleman, en 1977 est intéressante. En 1976, Whitfield
Diffie et Martin Hellman publient un article, qualifié de « révolutionnaire » par les
spécialistes de cryptographie, où ils définissent de nouveaux critères : pour supprimer
le problème de confidentialité des clefs de cryptage il faut utiliser des fonctions « à

Cf. plus loin le test de Miller Rabin.


13

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 28


Arithmétique et codes secrets 29

sens unique ». C’est-à-dire que le cryptage et le décryptage ne sont pas symétriques.


Alors on peut rendre publiques les éléments servant au cryptage des messages, d’où
le nom de systèmes à clefs publiques. On garde secrets les éléments servant au
décryptage, donc c’est le destinataire qui doit générer les clefs publiques, fabriquées
à partir de ses clefs qui restent secrètes.
C’est en essayant de monter que ce principe ne leur semblait pas exact que les trois
étudiants du MIT (Massachusetts Institute of Technology) Rivest, Shamir et Adlemann
ont abouti au résultat inverse ; en utilisant l’arithmétique des grands nombres
premiers ils ont mis au point un système qui est encore utilisé aujourd’hui.

Voici la justification théorique de ce cryptage :


Lemme Pour t, p et q entiers relatifs, p et q premiers distincts, k entier on a :
t( p −1)( q −1)k +1 ≡ t [ pq ] .
Conséquence Si en plus e est un entier premier avec ( p − 1)(q − 1) , alors il existe un
entier d tel que e.d ≡ 1 [( p − 1)(q − 1)] , et on a :
Principe de RSA Pour t, p et q entiers relatifs, p et q premiers distincts, et e entier
premier avec ( p − 1)(q − 1) , il existe un entier d tel que : (t e )d ≡ t [ pq ] .

Démonstration Pour montrer le lemme, on commence par le cas où p et q ne


divisent pas t. Le théorème de Fermat s’écrit pour p ne divisant pas t :
t p −1 ≡ 1 [ p ] ⇒ t( p −1)( q −1)k ≡ 1 [ p ] et t( p −1)( q −1)k +1 ≡ t [ p ]
q −1
et de même t ≡ 1 [ q ] ⇒ t( p −1)( q −1)k ≡ 1 [ q ] ⇒ t( p −1)( q −1)k +1 ≡ t [ q ] .
Comme p et q sont premiers et distincts, ils sont premiers entre eux. Chacun divise
t( p −1)( q −1)k +1 − t , donc leur produit divise ce nombre t( p −1)( q −1)k +1 − t (propriété
( p −1)( q −1)k + 1
du produit) soit t ≡t [ pq ] .
Lorsque p divise t, mais q ne divise pas t, on a
( p −1)( q −1)k + 1
t≡0 [ p] ⇒ t ≡0≡t [ p] . Pour q on garde les calculs ci-dessus, d’où
la même conclusion. Il en est de même si p et q divisent t.

Pour montrer le principe de RSA on utilise e premier avec ( p − 1)(q − 1) . L’entier e est
donc un élément inversible dans l’anneau 
( p − 1)(q − 1) . Le nombre d cherché
est l’inverse de e dans cet anneau. On a alors :

e.d ≡ 1 [( p − 1)(q − 1)] ⇒ ∃k ∈  , ed =


1 + k( p − 1)(q − 1)
⇒ (t e )d ≡ t1+ k( p −1)( q −1) ≡ t [ pq ] ,
ce qui achève la démonstration.

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 29


Arithmétique et codes secrets 30

7.4 Technique d’utilisation de RSA


Supposons que Alice veuille envoyer un texte à Bob. Dans ce paragraphe, seule la
technique du cryptage est expliquée. En pratique d’autres problèmes se posent
(comment être sûr que le texte est bien d’Alice, c’est-à-dire comment certifier la
signature d’Alice ; comment Alice est-elle sûre que le destinataire est Bob) qui
peuvent être résolus par le cryptage RSA. En pratique toujours, comme le cryptage
par RSA est long, seules de « petites informations » comme la signature ou l’échange
des clefs secrètes sont opérées par RSA, le DES prenant le relais pour le message
lui-même.

Bob commence par choisir deux « grands » nombres premiers p et q et les multiplie
pour obtenir N : N = p.q . La « sûreté » de l’algorithme est fondée sur l’impossibilité
de retrouver les facteurs p ou q de N (actuellement la plus grande factorisation
possible l’a été pour un nombre de 200 chiffres, cf.VIII.8).
Bob choisit aussi une clef de cryptage e (en général un petit nombre premier, premier
avec ( p − 1)(q − 1) ). Bob peut alors rendre publiques les valeurs N et e.
Alice, pour crypter le texte qu’elle veut envoyer à Bob, le numérise par une suite de
chiffres et obtient le message M, qui est donc un nombre entier. Si M est supérieur à
N, elle coupe M en morceaux de longueur inférieure à N. On peut donc supposer que
le message à crypter M est de longueur inférieure à N. Alice connaissant N et e, peut
calculer le message crypté C :
C = M e [ mod ulo N ] .
qu’elle transmet à Bob.
Par ailleurs, Bob doit calculer un inverse d de e dans l’anneau 
( p − 1)(q − 1) .
Pour ce faire il doit « résoudre une identité de Bezout », donc utiliser par exemple
l’algorithme d’Euclide étendu (ces opérations sont bien sûr faites par un
programme !).
Lorsqu’il reçoit le message crypté C, il calcule :

( )
d
Cd ≡ Me ≡M [mod ulo N ] .
et retrouve le message d’origine M.

Remarques C’est le même algorithme qui sert au cryptage et au décryptage,


mais avec des paramètres différents.
L’opération de cryptage/décryptage est commutative :

( Md ) ≡ ( Me )
e d
≡M [mod ulo N ] .
Cette propriété est utilisée dans les protocoles sécurisant les transactions.

Exemple avec Maple (cf. TD)


Soit à crypter le texte M, représentant le mot MATH, avec A=1, B=2,...., soit
M=131208. On choisit les nombres premiers p=563 et q=691.

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 30


Arithmétique et codes secrets 31

> restart;p:=563;isprime(p);q:=691;isprime(q);N:=p*q;
p := 563
true
q := 691
true
N := 389033
> M:=131208; if (M > N) then print("Message trop long") end if;
M := 131208
On va déterminer un petit nombre e, premier avec r=(p-1)(q-1). Le nombre e=3
convient-il? La commande "igcd" retourne le PGCD.
> r:=(p-1)*(q-1);igcd( r,3 );igcd(r,7);
r := 387780
3
1
Le nombre 3 n'est pas premier avec r, alors que 7 l'est. On choisit e=7. Les clefs
publiques sont N et e.
> e:=7; C:=M&^(e) mod N;
e := 7
C := 114242
C est le message crypté à transmettre. Le symbole & correspond à l'exponentielle
rapide.
Il faut maintenant trouver l'inverse de e modulo r=(p-1)(q-1), c’est-à-dire trouver d et k
tels que e*d+k*r=1. C'est la commande igcdex qui résout l'identité de Bezout.
Attention à la syntaxe : les variables doivent être désaffectées !
> pgcd:=igcdex(e,r,'u','k');u;k;
pgcd := 1
-55397
1
> e*u+r*k;
1
Les nombres e et r sont bien premiers entre eux. On obtient des valeurs u et k telles
que e*u+k*r=1, avec u=-55397, qui est négatif. On choisit une autre solution modulo r,
positive, puis on décode le message.
> d:=u+r;MM:=(C)&^(d) mod N;
d := 332383
MM := 131208
On retrouve le message d'origine.

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 31


Arithmétique et codes secrets 32

8 Sécurite des systèmes d’information


Un système d’information a pour objectif d’échanger des informations (un message,
un document) entre un expéditeur et un destinataire. Assurer la sécurité c’est garantir
sa confidentialité, garantir l’identité de l’expéditeur et du destinataire, garantir que le
message n’a pas été altéré. La sécurité est constituée d’un ensemble d’éléments, et
il est usuel de dire que la sécurité de l’ensemble est celle de son maillon le plus
faible !
Pour illustrer cette notion, on va appeler Alice l’expéditeur et Bob le destinataire. Les
informations qu’Alice adresse à Bob intéressent d’autres personnes, que l’on va
regrouper sous le nom d’Oscar. L’expérience montre qu’Alice et Bob ont raison d’être
méfiants donc d’intégrer la présence d’Oscar dans leurs protocoles.
On peut faire un parallèle avec une situation de la vie courante où le besoin de
sécurité est très fort : par exemple la signature d’un acte d’achat chez un notaire.
On suppose momentanément que Bob est notaire et Alice une cliente qui achète un
bien. La signature de l’acte d’achat a lieu chez le notaire, qui doit vérifier l’identité
d’Alice, en général en présence de tous les intervenants (si un des intervenants ne
peut être présent il doit au préalable effectuer une procuration, et faire certifier sa
signature). Le document est ensuite paraphé sur toutes les pages par le notaire,
l’acheteur et le vendeur. De ce fait le document ne peut plus être modifié. La
« signature » finale de l’acte engage la responsabilité de ceux qui ont signé.
On va voir que ces tous ces termes se retrouvent lorsque l’on désire une bonne
sécurité dans les échanges (c’est-à-dire presque tout le temps !). Il ne faut pas oublier
que le document papier de notre exemple est remplacé par des données transmises,
et les notions de document « original » et de signature ne peuvent plus garder les
mêmes significations.

8.1 Définitions
Confidentiel
L’information n’est accessible qu’à une personne autorisée.

Authentique
L’expéditeur ou le récepteur du message sont garantis, c'est-à-dire que l’on est
certain de l’identité de l’expéditeur et/ou du destinataire.

Intègre
Le document n’a pas été modifié (de façon volontaire ou non).

Signature numérique
Doit garantir la même sécurité qu’une signature manuscrite : authenticité et intégrité.

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 32


Arithmétique et codes secrets 33

8.2 Techniques
Protocole
Un protocole est une spécification de plusieurs règles pour un type de communication
particulier entre deux ordinateurs, dans le but de réaliser une tâche.
Par exemple dans toute transmission d’informations sur un bus de données, il faut
décrire le format et la synchronisation des paquets d’informations qui transitent.

Protocole défi/réponse
Ensemble d’échanges entre l’expéditeur et le destinataire permettant de garantir un
ou plusieurs des éléments qui concourent à la sécurité.

Cryptages
Ce poly vous en présente différents types : Hill (§ X.3), RSA (§ VII.3), Rabin(§ X.1), El
Gamal(§ X.2)

Certificat
Lorsqu’un algorithme de chiffrement à clef publique est utilisé, la clef de chiffrement
est garantie par une autorité, elle est « certifiée ».
S’insère dans une chaîne sur les clefs : distribution, certification, stockage et
répudiation (= suppression de la clef).
Exemple Certificat X509

Empreinte numérique
Condensé d’un document. Une modification, même minime, dans le document doit
modifier son empreinte. En général on utilise une fonction de hachage, qui crée une
empreinte appelée « haché » (cf. VIII.5).

8.3 Exemple : assurer la confidentialité


La confidentialité est bien assurée par un cryptage à clef publique. Pour envoyer un
message M à Bob, Alice récupère la clef publique de Bob et l’utilise pour crypter M en
C et envoie C à Bob. Bob étant le seul à posséder sa clef privée, il est le seul à
pourvoir décrypter C et obtenir le message d’origine M.

La méthode du masque jetable, donc avec une clef privée, convient aussi en théorie.
Mais, comme avec tous les systèmes à clef secrète, se pose le problème de
l’échange des clefs. La sécurité est très bonne à condition de changer de clef à
chaque fois (masque jetable). C'est-à-dire qu’il faut transmettre une clef aléatoire, de
même longueur que le message. Pour le « téléphone rouge » entre Moscou et
Washington, où ce type de clef voyage par la valise diplomatique, c’est possible.
Mais, dans le cadre des transferts informatiques actuels, le procédé du masque
jetable n’est donc pas utilisable.

8.4 Exemple : assurer l’authenticité


Avant d’envoyer son message à Bob, Alice veux être certaine de « l’identité » de Bob.

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 33


Arithmétique et codes secrets 34

Voici une méthode à clef publique, avec le cryptage RSA.


1) Alice génère un message aléatoire M, le chiffre en C, avec la clef publique de Bob
et l’adresse à Bob.
2) Bob déchiffre le message avec sa clef privée (donc obtient M) et l’envoie à Alice.
3) Si Alice reçoit M, est-elle certaine que c’est Bob avec lequel elle communique ?

On peut imaginer qu’Oscar « s’invite » dans cette correspondance. Il se met en


contact avec Alice, prétendant être Bob, et avec Bob prétendant être Alice. Lorsque
Alice envoie le message crypté C, c’est Oscar qui l’intercepte et l’adresse ensuite à
Bob…. Alice n’est donc pas en contact direct avec Bob. Mais seul Bob a pu décrypter
le message C et obtenir M. Si Alice et Bob continuent à converser en changeant de
clef à chaque fois, Oscar verra passer les messages, mais ne pourra pas les
décrypter.

8.5 Exemple : assurer l’intégrité par une fonction de


hachage
La façon habituelle de vérifier l’intégrité d’un message est d’introduire son empreinte
(ou haché), c’est-à-dire de calculer, à partir du message, une nouvelle valeur
numérique. Pour ce faire on utilise une fonction de hachage, qui associe à un
document de taille variable son empreinte qui a une de longueur fixée. Cette fonction
doit être « à sens unique », terme employé par les informaticiens ; les mathématiciens
parlent de fonction non inversible (non injective en fait). Le résultat, c’est-à-dire
l’empreinte, ne permet donc pas de retrouver le message d’origine. Par contre, si on
modifie légèrement le document d’origine, les fonctions de hachage utilisées font que
l’empreinte est modifiée et donc que la modification est détectée. Les fonctions de
hachage les plus utilisées sont SHA1 et MD5.

Voici un exemple de fonction à sens unique (cf. Introduction à la cryptographie, J.


Buchmann)

( )

On choisit p premier, et on utilise le fait que le groupe multiplicatif  est
p
cyclique (cf. IX.2 examen du 25 mai 2005). Soit donc g un générateur de ce groupe.

( ) ( )
∗ ∗
Alors l’application de  dans  qui à x associe g x est facile à calculer
p p
(exponentielle rapide), mais n’est pas inversible (problème du logarithme modulaire).

A-t-on résolu tous les problèmes ? La réponse est non : la fonction de hachage
n’étant pas injective, on peut avoir deux empreintes identiques pour deux messages
différents : c’est le phénomène de collusion.

8.6 Exemple de signature numérique


La signature numérique est un procédé d’identification d’un document numérique qui
permet de vérifier l’intégrité d’un message et son authenticité.
Une fois un document signé, il ne peut plus être contesté, en particulier par le
signataire (celui qui a signé, et qui pourrait être de mauvaise foi ; cette notion est la
non-répudiation).

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 34


Arithmétique et codes secrets 35

Pour signer, on utilise une empreinte, puis un protocole fondé sur une cryptographie
asymétrique. Voici un exemple à l’aide d’un déchiffrement/chiffrement RSA.

1) Alice veut envoyer et signer son message M. Elle va commencer par calculer une
empreinte de M, puis crypter cette empreinte avec sa clef privée : c’est sa signature
numérique S du message M. Elle crypte également le message M en C, par exemple
en utilisant une clef publique de Bob. Elle adresse C et S à Bob.
2) Comment Bob vérifie-t-il la signature d’Alice ?
Il commence par décrypter C à l’aide de sa clef privée et obtient M. Connaissant la
fonction de hachage, il détermine l’empreinte du message M. Il utilise alors la clef
publique d’Alice et peut décrypter la signature S, qui doit coïncider avec l’empreinte
qu’il vient de déterminer.

8.7 Sécurité et mathématiques


On rappelle que le problème est en général la transmission des clefs (secrètes), qui
s’effectue par un cryptage à clef publique. Une fois les clefs transmises, les
techniques à clef secrète sont utilisées car beaucoup plus rapides.

8.7.1 Grands nombres premiers

Les cryptages à clef publique nécessitent de grands nombres premiers. Vu la


difficulté à factoriser les grands nombres, ce n’est pas une recherche des
diviseurs (cf. crible d’Eratosthène) qui peut fournir des grands nombres
premiers. Le plus grand nombre premier actuellement connu est un nombre de
Mersenne. Ces nombres sont de la forme 2p − 1 , où p est un nombre premier
(cf. fiches d’exercices). Une compétition existe pour déterminer ces nombres, et
on les numérote dans l’ordre croissant. Cette recherche permet de tester la
puissance de calcul des ordinateurs, ou de réseaux d’ordinateurs. Le GIMPS
est un tel réseau mettant en commun les ressources de milliers d’ordinateurs,
animé par Curtis Cooper et Steven Boone (Université du Missouri).

Le dernier nombre trouvé (à la date de rédaction de ce polycopié) est le 47 ème


nombre premier de Mersenne, a été annoncé le 12 avril 2009 :
M42837064 = 242 837 064 − 1 , comporte 12 837 064 chiffres. Il a été trouvé par Odd
Magnar Strindmo de Melhus, Norvège. Odd est un professionnel dont les
ordinateurs ont travaillé avec le GIMPS depuis 1996. Ce calcul a pris 29 jours.

Le record précédent, le 46 ème nombre premier de Mersenne,


37 156 667
M37156667 = 2 − 1 , comporte 11 185 272 chiffres, avait été annoncé le 6
septembre 2008. Il a été découvert par Hans-Michael Elvenich, à Langenfeld,
Allemagne.

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 35


Arithmétique et codes secrets 36

Tous les plus grands nombres premiers connus sont des nombres premiers de
Mersenne car il existe un test de primalité particulièrement rapide adapté aux
nombres de cette forme, le test de primalité de Lucas-Lehmer.

Mais ces recherches ne peuvent pas servir pour des codages, car les nombres
premiers doivent être les plus quelconques possibles (les nombres premiers p tels
que (p-1) ait beaucoup de petits facteurs premiers sont également à éviter).

Le test de Miller-Rabin est un test probabiliste fondé sur le petit théorème de


Fermat, permettant de fournir des nombres premiers « de qualité industrielle ».
p 2s q + 1 , avec q impair soit un nombre
Théorème Pour que le nombre impair =
premier, il est nécessaire, que pour tout a premier avec p on ait :
q
- soit a ≡ 1 [ p]
k
- soit ∃k , 0 ≤ k ≤ s − 1 tel que a ( )
q 2
≡ −1 [ p] .
Démonstration : si p est un nombre premier impair, il peut s’écrire sous la forme :
s
p 2s q + 1 , avec q impair. On factorise le polynôme X 2 − 1 :
=

( )=
s s −1 s −1 2 s −1 s −1
X2 =
− 1 X 2×2 =
−1 X2 −1 (X2 − 1)( X 2 1) ...
+=
s −1
=( X − 1)( X + 1)( X 2 + 1)...( X 2 + 1)
q
Soit alors a premier avec p. On pose X = a . D’après le petit théorème de Fermat :
s
a p−1 ≡ 1 ⇒ a p−1 − 1 ≡ a 2 q − 1 ≡ 0 [ p] . D’où avec la factorisation :
( aq − 1)( aq + 1)(( aq )2 + 1) .... (( aq )2 )
s −1
+1 ≡ 0 [ p] .
Or p étant premier, 
p est un corps. D’où, un au moins de ces facteurs est nul,
c’est-à-dire que le résultat énoncé est montré.
p −1
Remarque : lorsque p est premier >2, a
p −1
≡1 [ p] , donc a 2 est une
racine carrée de 1, modulo p. Dans le corps 
p , il y a deux racines
p −1
p −1
carrées de 1 : 1 et −1. Si a 2 ≡1 [ p] , et si est pair, on continue avec
2
p −1 p −1
jusqu’à .
4 2s

D’où l’algorithme du test de Miller-Rabin : on veut déterminer si un entier impair n


est premier.
n 2s q + 1 , avec q impair.
1) On écrit n sous la forme=
2) On tire au hasard un entier a entre 1 et n-1.
Si PGCD( a,n) ≠ 1 , n est composé, sinon :

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 36


Arithmétique et codes secrets 37

q
3) On pose X = a [n] et on teste si X =1 [n] ou si ∃k , 0 ≤ k ≤ s − 1 tel que
k
X 2 ≡ −1 [n] .
4) Si ce n’est pas le cas, on peut déduire (par contraposée du théorème) que n est
composé.
5) Si au 3) on a une des égalités, le test « échoue » et on montre qu’il y a au moins 3
chances sur 4 que n soit premier, c’est-à-dire que, la probabilité que n ne soit pas
1
premier, est inférieure à .
4
6) Si le test a échoué, on recommence avec un nouveau tirage aléatoire de a.

A chaque tirage ayant échoué, la probabilité que n ne soit pas premier est inférieure à
1
. Au bout de 50 tirages, la probabilité pour que n ne soit pas premier est donc
4
50
1 1
inférieure à  =
 100
≈ 10 −30 . La probabilité que n soit premier est donc
4 2
supérieure à 1 − 10 −30 . Ce qui peut être considéré comme un bon résultat
« industriel » pour fournir un nombre n premier, utilisable dans un procédé de
cryptographie.

8.8 Attaques de RSA


Les attaques actuelles de RSA se font essentiellement en factorisant l’entier N. La
sécurité de cette méthode repose sur la difficulté à factoriser de grands nombres
entiers. On rappelle que la clef publique est formée du produit N de deux nombres
premiers p et q, et d’un entier e premier avec le produit ( p − 1)(q − 1) . L’entier N étant
public, tout le monde peut essayer de le factoriser. Actuellement les entiers utilisés
dans RSA ont 154 chiffres décimaux (qui correspondent à 512 bits). Voici, le dernier
résultat connu, à la date d’impression de ce polycopié :

8.8.1 Factorisation de RSA-640


Le 8 novembre 2005, une équipe de l'Agence Fédérale Allemande pour
l'Information sur la Technologie et la Sécurité a factorisé le nombre de 193
chiffres proposé par la RSA, et connu sous le nom de RSA-640. La découverte
des deux facteurs premiers de ce nombre leur a permis de gagner les 20 000
dollars alloués à ce défi.

La factorisation de RSA-640 trouvée par l'équipe allemande est la suivante:

310 7418240490 0437213507 5003588856 7930037346 0228427275 4572016194


8823206440 5180815045 5634682967 1723286782 4379162728 3803341547
1073108501 9195485290 0733772482 2783525742 3864540146 9173660247
7652346609
=

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 37


Arithmétique et codes secrets 38

1634733 6458092538 4844313388 3865090859 8417836700 3309231218


1110852389 3331001045 0815121211 8167511579
x
1900871 2816648221 1312685157 3935413975 4718967899 6851549366
6638539088 0271038021 0449895719 1261465571

La sécurité du système de cryptage RSA repose en effet sur la lenteur des


algorithmes de factorisation connus et les laboratoires RSA Security
soumettent depuis 1977 une liste de grands nombres assortie de récompenses
pour les premières équipes capable de les factoriser (i.e. retrouver les
diviseurs).
Baptisés RSA suivi de leurs nombres de chiffres en écriture décimale ou
binaire, les nombres proposés sont extrêmement difficiles à casser et on
estimait il y a 25 ans qu'il faudrait des millions d'année pour y parvenir... RSA-
640 comprend 193 chiffres (décimaux) et n'a pourtant résisté que quatre mois
et demi au crible mis en oeuvre par l'équipe allemande sur un réseau de 80
micro-processeurs Opteron cadencés à 2.2 GHz.
Par contre, il semble que la société RSA Secutity ait mis fin à son concours :
voici ce que l’on trouve sur son site, depuis septembre 2007 :

“This challenge is no longer active


The RSA Challenge Number
RSA-640 is factored !
RSA-200 is factored !
RSA-576 is factored !
RSA-160 is factored !
RSA-155 is factored !
RSA-140 is factored !”

Il faut donc, pour garantir une certaine sécurité, choisir des clefs plus grandes : les
experts recommandent des clefs de 768 bits pour un usage privé, et des clefs de
1024, voir 2048 pour un usage sensible.

Le problème de la sécurité avec un tel système nous oblige à réfléchir sur la nature
des preuves permettant d’assurer cette sécurité. Ce n’est pas par un câblage secret,
ni par une découverte cachée. La théorie mathématique (les congruences modulo n)
est simple, l’algorithme de cryptage est connu de tous. En cas de progrès des calculs,
il suffit d’augmenter la taille des nombres premiers choisis. La résistance du codage
envers les cryptanalyses tient au temps mis par les ordinateurs pour faire les calculs
nécessaires. Peut-on alors parler de sécurité informatique ? Doit-on aussi évoquer
des rumeurs ? Les services secrets actuels font travailler d’excellents
mathématiciens. Si une méthode permettant de décoder des messages cryptés a été
découverte, il est évident que cette information reste confidentielle. L’histoire a montré
que ce phénomène s’est souvent produit. Est-ce le cas actuellement ?

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 38


Arithmétique et codes secrets 39

L’avenir : il existe aussi d’autres voies de recherche (pour transmettre les clefs
secrètes), par exemple en utilisant des propriétés physiques : faire circuler des
photons polarisés ayant des orientations définies sur un câble en fibre optique. Mais
on en est au stade des expériences !

Puisque pour l’instant il est très difficile de trouver les facteurs premiers de N, on peut
avoir l’idée de résoudre directement l’équation M e ≡ C [N ] , où on connaît e, le
message crypté C et N. Ce problème est donc une extraction de racine, modulo N. Si
on introduit un « logarithme discret », c’est-à-dire opérant sur les entiers, on a :
e.ln( M ) = ln(C ) . Malheureusement les mathématiciens ont montré que ce problème
est très difficile.
Dernier point concernant RSA, le catalogue des clefs publiques de Bob et Alice ne
doit pas être modifiable. Ceci est actuellement réalisé par des organismes
certificateurs indépendants.

8.9 La sécurité des cartes bancaires


La carte à puce a été inventée par deux ingénieurs français, Roland Moreno et Michel
Ugon à la fin des années 1970. Elle a permis d’améliorer la sécurité des transactions
par carte bancaire. Auparavant, les cartes dites de « crédit » possédaient une piste
magnétique, mais le payement était établi à partir d’une facturette, obtenue en
passant la carte dans « un fer à repasser » recopiant les informations en relief de la
carte. Les autorisations étaient téléphoniques.
Actuellement, l’utilisation des puces se multiplie, chaque fois qu’une information a
besoin d’être protégée, comme pour la carte vitale ou la carte SIM des téléphones.

La puce de la carte est un petit processeur qui contient :


- ROM (6 à 20 Ko) : codage du DES et numéro
- RAM (128 à 1024 octets) : calculs
- EEPROM (1 à 8 Ko) : des informations relatives au propriétaire de la carte, clefs...

Sécurité des transactions


Le standard EMV( Europay MasterCard Visa) désigne le nouveau standard
international de sécurité pour les cartes à puce de payement. Depuis 2005, un
système de cryptage supplémentaire, le DDA (Dynamic Data Authentication), est
ajouté aux cartes dites de troisième génération : chaque transaction génère une
signature unique calculée à partir de données aléatoires et renforce ainsi la sécurité
des paiements
Fin 2007, il y a plus de 700 millions de cartes au monde utilisant ce standard.

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 39


Arithmétique et codes secrets 40

Carte bancaire comportant une puce

Transaction EMV
La sécurité est assurée à trois niveaux, les deux premiers au niveau local.

0) Lecture des informations. La carte contient des informations publiques concernant


le titulaire de la carte : id. Au moment de la fabrication de la carte, on stocke une clef
publique correspondant à la cryptographie RSA (clefs N et e= 3 publics, d secret),
crée pour toute la durée de vie de la carte.
Lorsque la carte est introduite dans un terminal de payement, celui-ci lit ces
informations sur la carte, ainsi que son numéro, la date de fin de validité…

1) Authentification locale : RSA


Le terminal génère alors un aléa (avec e=3), que la carte doit signer avec sa clef
privée, suivant la cryptographie RSA (souvent RSA-CRT, cf. examen X.7). Le
terminal vérifie cette signature avec la clef publique qu’il vient de lire. Il peut ainsi
vérifier que la carte est authentique, qu’elle a bien été émise par la banque.
Si la carte n’est pas rejetée, on passe à la deuxième vérification par code secret.
2) Code secret

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 40


Arithmétique et codes secrets 41

L’utilisateur doit alors taper ce code secret. L’EEPROM contient le code secret de la
carte : PIN (Personnal Identification Number). La puce vérifie si le code tapé est
correct, et retourne « oui » ou « non ». Cette étape permet de s’assurer que la carte
est entre les mains de son porteur légitime.
Si la réponse est « non », l’utilisateur est invité à taper à nouveau son code. Au bout
de trois essais incorrects, la puce se fige et la carte est bloquée.
Si la réponse est « oui », la puce vérifie que le montant total des transactions (pour
une période déterminée 14) est inférieure à un certain seuil 15. Si le montant de la
transaction en cours est inférieure à un certain seuil (en général 100 euros) 16 , la
transaction est autorisée. Sinon, la carte demande l’authentification en ligne ; il en est
de même si on retire de l’argent à un distributeur.

3) Authentification en ligne : par DES


Le terminal interroge un centre contrôle. La technique utilisée pour protéger les
informations est un cryptage avec le tripleDES. La clef secrète nécessaire pour utiliser
DES est calculée à partir de id et d’une clef K secrète stockée dans une zone secrète
de l’EEPROM. Le protocole est de la forme « défi-réponse » : le centre envoie à la
carte un nombre aléatoire x. La carte calcule y=f(x,K) où f est la fonction de
chiffrement du DES. La valeur y est retransmise au centre, qui lui-même calcule f(x,K)
et donne l’autorisation si ces deux valeurs sont égales.
On peut noter que le centre de contrôle doit connaître les valeurs K de toutes les
cartes !
Pour terminer, la carte émet alors un certificat de transaction, qui reprend tous les
éléments et les protège par une signature numérique. Cette signature est effectuée
par DES. Ce certificat de transaction est alors imprimé sur un ticket.

L’affaire Humpich
En 1998, cet informaticien a pu, après trois ans de travail, et en utilisant du matériel
grand public :
- casser l’authentification RSA de l’étape 1,
- fabriquer des « yes-cards », acceptant tous les codes secrets (étape 2).

Son objectif était de « travailler » avec le GIE Carte Bleue pour améliorer la sécurité
des cartes bancaires. En fait, ce GIE a porté plainte contre Serge Humpich, qui a été
condamné en 2000.
Par contre, depuis, le GIE Carte Bancaire a changé les procédures de validation, et
actuellement il n’est plus possible de fabriquer de telles fausses-cartes.

ces valeurs sont paramétrables et dépendent du type de carte : ordinaire, « or », « premier »..
14

idem,
15

idem.
16

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 41


Arithmétique et codes secrets 42

9 Exercices
9.1 Structures
Exercice 1 Groupe de Klein
On considère l’ensemble K = {e, a,b,c} muni d’une multiplication d’élément neutre
2 2 2
e, associative et vérifiant : a= b= c= e, bc
= a, ca
= b, ab
= c.
Ecrire la table de cette multiplication. Vérifier qu’alors K est un groupe commutatif.
Obtient-on le même groupe que  ( 4 , + ?)
___________________________________________________________________
__
Exercice 2 Sous groupes d’un groupe fini
Soit G
= (=

7  ,.)

{1,2,3,4, 5,6} , avec la multiplication modulo 7.
1) Ecrire la table de la multiplication de G, et vérifier qu’on a bien un groupe
commutatif.
2) Pour tous les a de G, calculer les puissances successives an ,n = 2,3,...,6 .
Vérifier que ∀a ∈ G, a6 =1 .
3) Pour a dans G, on appelle Ga l’ensemble des puissances de a :
Ga
= {ak , k ∈  } . Montrer que Ga comporte au maximum 6 éléments, puis montrer
que Ga est un sous-groupe de G. Ga est dit engendré par a.
Ecrire les différents sous groupes engendrés par les éléments de G. Vérifier que
l’ordre de ces sous-groupes divise 6 (c’est à dire l’ordre de G). Existe-t-il des
éléments a de G qui engendrent G (c’est à dire Ga =G, G est alors cyclique) ?
___________________________________________________________________
__
Exercice 3 Centre d’un groupe Soit un groupe ( G,⋅) . Le centre de G est
l’ensemble C des éléments de G qui commutent avec tous les éléments de G :
a ∈ C ⇔ ∀x ∈ G, ax =xa .
1) Le centre C peut-il être vide ? Peut-on avoir G=C ?
2) Démontrer que C est un sous groupe de G.
___________________________________________________________________
__
Exercice 4 Formule du binôme. Soit ( A, + ,.) un anneau non commutatif.
2
1) A-t-on : ( a + b ) =a 2 + 2ab + b 2 pour tous a et b de A ?
Justifier la réponse par des exemples.
2) Si a et b sont permutables ( ab = ba ) et n entier>0, vérifier que :
n
( a + b )n =
∑ Cnp a pbn− p .
p =0

3) Montrer que 33n+ 3 − 26n − 27 est divisible par 169.


___________________________________________________________________
__

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 42


Arithmétique et codes secrets 43

Exercice 5 Entiers de Gauss


On considère l’ensemble  [ i=
]  ×  muni des deux opérations :
( a,b) + ( a',b') = ( a + a',b + b')
( a,b)( a',b') = ( aa'− bb', ab'+ a'b)
1) Interpréter ces opérations avec a + ib, i 2 =
−1, a,b ∈  . Montrer qu’alors  [ i ]
est un anneau commutatif unitaire.
2) Trouver tous les éléments inversibles de cet anneau et vérifier que pour la
multiplication ils forment un groupe à quatre éléments. Le comparer au groupe de
Klein (ex. 1) et à  ( 4 , + .)
9.2 Congruences
Exercice 6
Dans  montrer que la relation a  b ⇔ a3 − b3 =a − b est une relation
d’équivalence.
Combien d’éléments une classe d’équivalence peut-elle comporter ? La déterminer
1
: a 1=
pour= , a , a 2.
=
3
___________________________________________________________________
__
Exercice 7
L’équation 15x 2 − 7 y 2 =
9 possède-t-elle des solutions en nombres entiers relatifs ?
Indication : travailler dans 
5 .
___________________________________________________________________
__
Exercice 8
A a( a 2 − 1) est divisible par 6.
1) Pour a ∈  ∗ , montrer que=
An a( a 2n − 1) est divisible
2) Généralisation : pour a ∈  ∗ et n ∈  , montrer que=
par 6.
___________________________________________________________________
__
Exercice 9
1) Déterminer, suivant les valeurs de n ∈  ∗ , le reste de la division de 7 n par 4 et
par 10 .

2) Trouver le chiffre des unités de 7


(77 )
.
___________________________________________________________________
_
Exercice 10
Déterminer le nombre de zéros à la fin de 2009 !
___________________________________________________________________
__
Exercice 11
Quel est le plus petit nombre multiple de 49 qui s’écrit, en base 10, à l’aide seul
chiffre « 1 » ?

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 43


Arithmétique et codes secrets 44

p
Indications : introduire 
7  , puis utiliser la formule du binôme pour ( 1 + 7 ) .
___________________________________________________________________
__
Exercice 12 Eléments inversibles dans l’anneau  ( 10  , + ,. )

1) Ecrire la table de la multiplication de 
10  = {1,2,.....,9} . Donner la liste des
éléments inversibles et vérifier que ces éléments forment un groupe à quatre
éléments. Est-ce le même groupe que  ( 4 , + ? )
2) Résoudre dans  les équations :
a) 5x + 2 ≡ 0 [10 ] b) 6x − 2 ≡ 0 [10 ] c) x 2 ≡ 6 [10 ] .
d) x 2 + 5x + 4 ≡ 0 [10 ] .
___________________________________________________________________
__
Exercice13 Théorème chinois « à la main »
1) Ecrire les entiers relatifs vérifiant x ≡ 5 [7 ] .
2) En déduire, en utilisant la table de multiplication de 
7  (cf. exercice 2), les
4x + 1 ≡ 0 [5]
solutions dans  du système :  .
 4x + 1 ≡ 0 [7 ]

9.3 Applications des congruences : NIR


Exercice 14 Le NIR (Numéro d’Inscription au Répertoire national d’indentification
des personnes physiques) est géré par l’INSEE. Il est formé de 15 chiffres (écrits en
base 10) et permet d’identifier chaque habitant en France, par exemple pour son
immatriculation à la Sécurité Sociale.
Ce numéro est formé de 13 chiffres formant un nombre A, plus une clef de contrôle K
de 2 chiffres, soit au total 15 chiffres. Le NIR est A1 =A × 100 + K .
La clef K permet de détecter quelques erreurs. Le but de cet exercice est d’analyser
des erreurs qui peuvent être détectées par cette clef.

On rappelle que les chiffres de A sont formés de renseignements sur l’individu : le


premier code le sexe (1 ou 2), les deux suivants l’année de naissance (les deux
derniers chiffres) , puis le mois de naissance (de 1 à 12), puis le numéro du
département de naissance (99 pour les personnes nées à l’étranger), puis le code de
la commune (3 chiffres, il existe un répertoire des communes), puis 3 chiffres
correspondant au numéro d’ordre sur le registre d’état civil de la commune. Ce
numéro a été inventé en 1942, par un ingénieur, René Carmille (1886-1945), et porte
encore les marques de sa création durant une période difficile. La clef K a été
introduite plus tard.

La clef K est 97 − B , où B est le reste de la division de A par 97.

1) Peut-on avoir 00 comme clef ? Peut-on avoir 97 comme clef ?


2) Calculer 10 3 , 10 6 , 10 9 , 1012 [97 ] .

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 44


Arithmétique et codes secrets 45

On donne le NIR suivant : 1 75 06 75 112 431 61. Vérifier que la clef K est correcte.
Vérifier votre propre NIR (sur votre carte d’étudiant).
3) On pose A2= A + K .
Vérifier que A2 est divisible par 97.
4) Soient n ∈  et a ∈ {1,2,....,96} . Montrer que 97 ne divise pas a × 10 n .
5) En pratique, pour décider qu’un NIR est valide, on commence par vérifier les
valeurs de certains chiffres : le chiffre codant le sexe doit être 1 ou 2, les deux chiffres
correspondant au mois de naissance doivent être compris entre 1 et 12…. Sinon le
numéro est rejeté.
Ensuite pour déterminer si A est correct, on calcule A2 . Si A2 est divisible par 97,
on estime que le numéro est correct. Sinon on le rejette.
Montrer que cette façon de procéder permet la détection d’une erreur sur un chiffre
dans le NIR.

6) Montrer que l’on peut aussi détecter toute permutation de deux chiffres
consécutifs distincts dans le NIR.
Indication : on examinera les différents cas possibles :
- a) les chiffres permutés appartiennent tous les deux à A ,
- b) la permutation concerne les deux chiffres de K,
- c) la permutation concerne un des chiffres de K, et un des chiffres de A .

7) Inventer un nombre de 15 chiffres, inexact, et qui n’est pas rejeté par ce procédé
de contrôle.

9.4 Applications des congruences : Un code correcteur et


le code de César
Exercice 15 Un code correcteur de Hamming
Dans cet exercice on propose une méthode pour détecter et corriger une erreur dans
la transmission d’un nombre de 10 chiffres décimaux A = a1a2 .....a10 , les ai pouvant
prendre les valeurs 0,1,….,9. Pour assurer ce résultat, on ajoute une clef de deux
symboles b1 ,b2 , où ces symboles peuvent prendre les valeurs 0,1,….,9 et la valeur X
qui représente 10 (comme dans le codage ISBN). L’information transmise est donc
composée de 12 symboles ∈ {0,1,...,9,X} .
La clef est calculée par des congruences modulo 11, suivant les règles (R1) et (R2)
suivantes :
10
( R1) : b1 ≡ ∑ ai [11]
i =1
10
( R2 ) : b2 ≡ ∑ i × ai [11] .
i =1
Le message transmis est N = a1a2 .....a10 b1b2 .
On part d’un numéro N transmis (soit 12 symboles), et on suppose que le numéro a
été communiqué en faisant au plus une erreur sur un chiffre ou symbole.
1) Si l’erreur a été faite sur un ai avec 1 ≤ i ≤ 10 , montrer qu’aucune des règles (R1)
et (R2) n’est satisfaite.

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 45


Arithmétique et codes secrets 46

2) Si l’erreur a été faite sur b1 , montrer que la règle (R1) n’est pas vérifiée, tandis
que la règle (R2) est vérifiée.
3) Si l’erreur a été faite sur b2 , montrer que la règle (R2) n’est pas vérifiée, tandis
que la règle (R1) est vérifiée.
4) Expliquer comment on peut détecter la présence d’une erreur. Montrer que ce
système permet de corriger une erreur. Indication : utiliser le fait que  ( 11 , + , × )
est un corps.
5) Applications
a) Compléter 0123456789_ _ pour avoir un numéro exact.
b) On a reçu le numéro N=052170795658, et l’on sait qu’une erreur au plus s’est
produite.
Y a t il eu une erreur dans la transmission de ce numéro ? Si oui, quel était le
numéro initial ?
___________________________________________________________________
__
Exercice 16 Cryptographie de César
On donne le codage suivant utilisant 27 symboles. Quel est le résultat de ce
programme Maple ?
tablecod:=table(['a'=1,'b'=2,'c'=3,'d'=4,'e'=5,'f'=6,'g'=7,'h'=
8,'i'=9,'j'=10,'k'=11,'l'=12,'m'=13,'n'=14,'o'=15,'p'=16,'q'=17
,'r'=18,'s'=19,'t'=20,'u'=21,'v'=22,'w'=23,'x'=24,'y'=25,'z'=26
,'_'=0]);
tabledecod:=table([1='a',2='b',3='c',4='d',5='e',6='f',7='g',8=
'h',9='i',10='j',11='k',12='l',13='m',14='n',15='o',16='p',17='
q',18='r',19='s',20='t',21='u',22='v',23='w',24='x',25='y',26='
z',0='_']);
> cesar:=proc(mes)
> local lm,nb,ii,mescode;
> lm:=length(mes); mescode:=" ";
> for ii from 1 to lm do
> nb:=tablecod[substring(mes,ii)];#substring extrait le ii-ème
élément de mes
> nb:=nb+3 mod 27;mescode:=cat(mescode,tabledecod[nb]);od;
> print('message_codé',mescode);end proc;
> cesar('mathematiques_et_codages');

9.5 Nombres premiers


Exercice 17 Diviseurs d’un nombre
1) Ecrire tous les entiers ∈ [1,20 ] qui possèdent exactement 6 diviseurs ≥ 1 .
2) Soit p entier naturel premier. On suppose que la somme des diviseurs positifs de
p 4 est le carré d’un entier n>0. Montrer que :
2p 2 + p < 2n < 2p 2 + p + 2
En déduire, l’unique couple p,n ∈  solution.
___________________________________________________________________
__

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 46


Arithmétique et codes secrets 47

Exercice 18
Soit n entier ≥ 2 . On considère les n-1 nombres :
n!+ 2, n!+ 3,....,n!+ (n − 1), n!+ n .
Démontrer que ces nombres ne sont pas premiers.
Soit N entier. Montrer que l’on peut trouver une suite de N nombres consécutifs non
premiers.
Application numérique : Ecrire une telle suite pour N=4 et N=5. Continuer jusqu’à
rencontrer un nombre premier. Trouver un exemple où n!+ 1 est premier.
___________________________________________________________________
__
Exercice 19 Problème posé par Sophie Germain (mathématicienne française,
1776-1831 ; a travaillé sur les courbes et sur les problèmes d’élasticité)
Montrer que le seul nombre premier p tel que :
∃x, y ∈  , x 4 + 4y 4 =
p
est p = 5.
Indication : x 4 + 4y 4 = ( x 2 − 2xy + 2y 2 )( x 2 + 2xy + 2y 2 ) .
___________________________________________________________________
__
p
Exercice 20 Nombres de Mersenne : M=
p 2 − 1 où p est premier.
(Marin Mersenne, moine de l’ordre des Minimes, travail publié en 1644
à Paris)
11
1) Le nombre M=11 2 − 1 est –il premier ?
Montrer que 1103 divise M 29 et que 439 divise M73 .
p pq p
2) Soient p,q ∈  ∗ . Quel est le reste de la division de 2 puis 2 par 2 − 1 ?
pq p q
En déduire que 2 − 1 est divisible par 2 − 1 et 2 − 1 .
3) Montrer que si 2n − 1 est premier, alors n est premier. La réciproque est-elle
exacte ?
___________________________________________________________________
__
n
Fn 22 + 1
Exercice 21 Nombres de Fermat : =
(Pierre Fermat, conseiller au Parlement de Toulouse, dans une lettre en
1640 ; il les croyait tous premiers.)
1) Vérifier que F0 , F1 , F2 et F3 sont premiers. Comment vérifier que F4 est premier ?
2) Chercher les restes de 232 dans la division par 641. En déduire que F5 n’est pas
premier.
(Résultat publié par Leonard Euler, « prince des mathématiques » en 1793.)
Conjecture : On ne sait pas si, parmi les nombres de Fermat, d’autres que ceux de la
question 1 sont premiers. Tous ceux où les vérifications ont pu être faites sont
composés.
n
2
3) On pose G
=n 2 − 1 . Montrer que ces nombres sont composés pour n ≥ 2 (partir
de Gn+1 ).

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 47


Arithmétique et codes secrets 48

9.6 Entiers premiers entre eux


Exercice 22 PGCD, algorithme d’ Euclide
1) Déterminer le PGCD de 21 590 et 9 525.
2) Résoudre dans  : 34x ≡ 2 [15 ] .
3) Trouver tous les entiers x et y compris entre 0 et 150 tels que :
21590x − 9525y =
1270 .
___________________________________________________________________
__
Exercice 23 Diviseurs de zéro dans l’anneau  ( n , + ,. )
1) Soit n un entier non premier. Soit a compris entre 1 et (n-1). Montrer que a est un
diviseur de zéro dans  ( )
n , + ,. si et seulement si a et n ne sont pas premiers
entre eux. (Indication : introduire le PGCD de a et n.)
2) Applications
a) Donner la liste des diviseurs de 0 dans  . Que peut-on dire des autres
12
éléments ?
0 dans 
b) Résoudre x 2 + 6x − 91 =
101 puis dans

100  .
___________________________________________________________________
__
Exercice 24 Calcul d’inverses dans des anneaux  (pour RSA)
n
1) Calculer l’inverse de e=3 dans a)   c) 
12 b) 23 352 .
2) Calculer l’inverse de e=17 dans a)  
23 b) 352 .
___________________________________________________________________
__
Exercice 25 Chiffrement de Hill Examen OT 2006
Cf. § X.3 Textes d’examen
___________________________________________________________________
__
Exercice 26 Identité de Bezout avec trois entiers (premiers entre eux)
1) Trouver toutes les solutions dans  3 de 5u + 7 v + 11w =
1.
Indication : commencer par résoudre le problème dans 
11 .
2) Trouver toutes les solutions dans  3 de 6u + 10v + 15w =1.
Attention : pris deux par deux , 6, 10 et 15 ne sont pas premiers entre eux !
Indication 6 × 1 + 10 × 1 − 15 × 1 =1.
___________________________________________________________________
__
Exercice 27 Nombres premiers entre eux, théorème de Gauss
1) En utilisant (n2 + 1)2 , factoriser N = n4 + n2 + 1,n ∈  .
Le nombre N peut-il être premier ?
2) Soit n>1. Montrer que N peut être décomposé en un produit de deux facteurs
premiers entre eux.
___________________________________________________________________
__

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 48


Arithmétique et codes secrets 49

Exercice 28 Problème posé par Euler


Que pensez-vous de cet énoncé ?
« Un paysan achète des chevaux et des bœufs ; il paie 31 écus par cheval et 20 écus
pour chaque bœuf. Il se trouve que les bœufs lui ont coûté 7 écus de plus que ce que
lui ont coûté les chevaux. Combien cet homme a-t-il acheté de bœufs et de
chevaux ? »

9.7 Théorème des Fermat / Théorème chinois


Exercice 29 Théorème Chinois : le phare
Un phare émet un signal jaune toutes les 15 minutes et un signal rouge
toutes les 28 minutes. On aperçoit le signal jaune à 0h 02 mn et le rouge à 0h 08
mn.
A quelle heure verra-t-on pour la première fois les deux signaux en même temps ?
___________________________________________________________________
__
Exercice 30 Théorème Chinois : les pirates
Une bande de 17 pirates s’est emparée d’un butin composé de pièces d’or d’égale
valeur. Ils décident de se les partager également, et de donner le reste au cuisinier
chinois. Celui-ci recevrait alors 3 pièces. Mais les pirates se querellent, et 6 d’entre
eux sont tués. Le cuisinier recevrait alors 4 pièces. Dans un naufrage ultérieur, seuls
le butin, 6 pirates et le cuisinier sont sauvés, et le partage donnerait alors 5 pièces
d’or à ce dernier. Quelle est la fortune minimale que peut espérer le cuisinier quand il
décide d’empoisonner le reste des pirates ?
___________________________________________________________________
__
Exercice 31 Petit théorème de Fermat
=
Montrer que pour tout x entier, A x( x 24 − 1) est divisible par 39.
___________________________________________________________________
__
Exercice 32 Une autre démonstration du petit théorème de Fermat
Soit p>2 premier. Montrer que les éléments inversibles (pour la multiplication) du
corps  forment un groupe multiplicatif. Quel est son nombre d’éléments ?
p
On rappelle que l’ordre d’un sous groupe divise l’ordre d’un groupe (fini).
En déduire que pour x premier avec p : x
p −1
≡1 [ p]
___________________________________________________________________
__
Exercice 33 Examen 2005 Groupes cycliques
Cf. § X.2 Textes d’examen, questions 1 et 2.
___________________________________________________________________
__
Exercice 34 Examen 2005 Racines carrées modulaires
Cf. § X.1 Textes d’examen, questions 1, 2 et 3.

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 49


Arithmétique et codes secrets 50

___________________________________________________________________
Exercice 35 La réciproque du théorème de Fermat est inexacte : nombres de
Carmichael
Le petit théorème de Fermat affirme que si p est premier et a non multiple de p, alors
a p−1 ≡ 1 [ p] . On se pose la question de savoir, la relation a
p −1
≡1 [ p] étant
vérifiée pour tout a premier avec p, si alors p est premier. La réponse est non, il
existe des nombres n, dits de Carmichael, qui sont composés et vérifient
an−1 ≡ 1 [ n] . On va le montrer pour le plus petit d’entre eux, 561, en remarquant
que 561 = 3 × 11 × 17 , 560 = 561 − 1 = 2 × 280 = 10 × 56 = 16 × 35 .
Ecrire le petit théorème de Fermat pour les nombres premiers 3, 11 et 17. Utiliser les
décompositions ci-dessus pour montrer que pour tout a premier avec 561, on a
a 560 ≡ 1 [ 561] .

9.8 RSA
Exercice 36 RSA « à la main »
Bob et Alice viennent d’étudier RSA et décident de le tester sur un exemple simple. Ils
choisissent les entiers premiers 11 et 13, d’où N = 11 × 13 = 143 .
1) Ils choisissent e=3. Est-ce correct ?
Dorénavant la clef publique est formée de N=143, e=7. Ils choisissent un message M
de valeur inférieure à 143, et le codent. Ils obtiennent C=27.
2) Trouver le reste de la division de 27 103 par 11, et le reste de la division de 27 103
par 13.
En déduire, à l’aide du théorème chinois, le reste de la division de 27 103 par 143.
3) Décoder le message C.
___________________________________________________________________
__
Exercice 37 Une attaque de RSA : même choix de N.
Comme la vérification que des nombres sont premiers est coûteuse, deux
correspondants d’Alice, Bob et Bernard utilisent pour leurs clefs privées les mêmes
entiers premiers p et q, et donc le même N= p × q . Par contre ils choisissent deux
entiers e1 et e2 différents et premiers entre eux. Leurs clefs publiques sont donc
( N , e1 ) ; ( N , e2 ) .
Alice veut envoyer le même message M à Bob et Bernard (elle connaît bien sûr leurs
clefs publiques). Elle crypte M respectivement en C1 et en C 2 .
Montrer que si Oscar intercepte C1 et C 2 , il peut retrouver le message M.
Application numérique avec Maple : N=10000000167993271. La clef publique de Bob
est (N,357), la clef publique de Bernard est (N,501). Oscar intercepte des messages
chiffrés : C1:=4120301081636019 ;C2:=1279799048180465;
envoyés par Alice et pense qu'il s'agit du même message M. Retrouver M sans
factoriser N.

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 50


Arithmétique et codes secrets 51

___________________________________________________________________
__
Exercice 38 Une faiblesse de RSA : même choix de e
Pour que RSA soit sûr, il doit être employé avec des nombres premiers très grands,
et une valeur de e variable. Ce n’est pas toujours le cas. Dans le protocole de cartes
bancaires, la partie vérifiée avec RSA utilise e=3 pour toutes les transactions. Que
risque-il de se passer ?
Alice veut envoyer à trois correspondants Bob 1 , Bob 2 et Bob 3 le même message
M. Elle connaît les clefs publiques de ses trois correspondants, qui sont formées
avec la même valeur e=3. D’où les trois couples de clefs publiques :
( N1 ,3) ; ( N 2 ,3) ; ( N 3 ,3) . Alice crypte donc M avec ces clefs et obtient les trois
messages cryptés C1 , C 2 , C 3 .
1) On suppose que N1 , N 2 , N 3 sont premiers entre eux, pris deux à deux. Montrer
que si Oscar intercepte les trois messages cryptés, il peut retrouver le message
d’origine M.
Expliquer pourquoi deux messages interceptés ne suffisent pas à retrouver M.
=
2) Application numérique à la main : N1 205,
= N 2 187 = , N 3 667 .
Vérifier que ces nombres sont premiers entre eux deux à deux.
On donne = C1 10,= C 2 111,
= C 3 167 . Retrouver le message M.
3) Application numérique avec Maple :

N1:=10000000167993271;N2:=10000000077056303;N3:=100000007614398
83;
C1:=9010328151653526;C2:=3715786019602206;C3:=4712381892400635;
Montrer (sans utiliser la factorisation des nombres N), qu’Oscar peut retrouver le
message M.
Vérifier ce résultat avec la clef secrète de Bob 1 .
4) On suppose que N1 et N 2 ne sont pas premiers entre eux.
Montrer qu’alors Oscar peut factoriser N1 et N 2 (donc trouver la clef secrète de
Bob 1 ).

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 51


Arithmétique et codes secrets 52

10 Textes d’examens
Note : les calculatrices sont autorisées. Sont également autorisées les notes de
cours distribuées par les enseignants, ainsi que les notes manuscrites personnelles.
Tout autre document et tout moyen de communication sont interdits.

10.1 Racines carrées modulaires et chiffrement de Rabin,


examen du 17 mai 2005, EURINSA approfondissement
« Mathématiques discrètes »
( )

On note, pour n entier >3, {1,2,....,n − 1} les éléments de  et on confond =
n
et ≡ .

(  n )

1) Ecrire les carrés des éléments de pour chacune des valeurs de n
suivantes : n=5, 7 et 8.
Donner la liste des éléments qui sont des carrés, c’est-à-dire les éléments de

Cn = { (
c ∈  n )

(
, ∃x ∈  n )

,x 2 = c } et préciser le nombre de solutions de

l’équation x 2 = a pour tous les éléments a de Cn .

2) Soit p premier, tel que p ≡ 3 [ 4] et soit c ∈ C p .


p +1
Montrer, en utilisant le théorème de Fermat que d = c 4 est une racine carrée de c.
Donner toutes les solutions de l’équation : x 2 = c [ p] et préciser leur nombre.
Application numérique
a) p = 31. Résoudre : x 2 ≡ 10 [ 31] .
b) p = 31. Résoudre : x 2 ≡ 11 [ 31] .
c) p = 43. Résoudre : x 2 ≡ 10 [ 43] .

3) Soit n = pq où p et q sont premiers, et soit c ∈ C p ∩ C q c’est-à-dire qu’il existe u et

v tels que : u2 ≡ c [ p] et v2 ≡ c [q ] .
a) Expliquer pourquoi on peut trouver des entiers relatifs a et b tels que :
 a ≡ 1 [ p] b ≡ 0 [ p]
 
 a ≡ 0 [q ]  b ≡ 1 [q ]
b) Montrer que =x au + bv est une racine carrée de c modulo n.
Application numérique
c) Trouver des entiers relatifs λ et μ tels que 31λ + 43μ =
1.

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 52


Arithmétique et codes secrets 53

 a ≡ 1 [ 31] b ≡ 0 [ 31]
d) Trouver a et b tels que :   .
 a ≡ 0 [ 43] b ≡ 1 [ 43]
e) Donner une solution de l’équation x 2 ≡ 10 [1333] .
Combien cette équation possède-t-elle de solutions ?

4) Le chiffrement de Rabin consiste à choisir deux entiers premiers p et q, tous les


deux congrus à 3 modulo 4 et qui constituent la clef privée. La clef publique est le
produit n = pq .
La fonction de chiffrement est l’élévation au carré modulo n, c’est-à-dire que si M est
le message à transmettre (de longueur <n), le message chiffré est MC = M 2 [n] .
La fonction de déchiffrement consiste en le calcul de la racine carrée modulo n. Les
mathématiciens ont montré que lorsque n est grand, ceci n’est possible que si on
connaît la factorisation de n.

On choisit M = 1234 et n = 1333 .


a) Ecrire le message chiffré MC de M.
b) On donne MC = 10 et n = 1333 . Déchiffrer MC.
Quel est le problème théorique de ce chiffrement ?
c) Proposer une idée permettant d’utiliser ce chiffrement malgré le problème de la
question précédente.

10.2 : Groupes cycliques et chiffrement El Gamal, examen


du 25 mai 2005, OT « Mathématiques et Codages »

( )

On note, pour p entier premier >3, {1,2,...., p − 1} les éléments de  . On
p
rappelle que cet ensemble est un groupe commutatif pour la multiplication et qu’il

( ) ,× 
 ∗
note  p  
comporte (p-1) éléments. On= ce groupe.
p

Pour tout a de  p on appelle Ga les puissances de a, c’est-à-dire :

Ga
= {a k , k ∈  }
1) a) Pour tout a de  p montrer que Ga est un sous-groupe de  p et que:

Ga = {
a k , k ∈ {1,2,....( p − 1)} , }
Application numérique
b) Pour p=7, écrire tous les sous-groupes Ga possibles et indiquer le nombre de
leurs éléments. Vérifier que ce nombre divise p-1=6.

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 53


Arithmétique et codes secrets 54

On appelle générateur de  p , tout élément a de ce groupe tel que  p = Ga . On dit


alors que  p est cyclique. On admet que pour tout p premier  p est cyclique.

c) Donner les générateurs de  7 .

2) On choisit p=19.
a) Vérifier que 3 est générateur de  19 .
b) L’entier a=8 est il un générateur de  19 ?
c) Pour k dans {1,2,...,18} , on pose b = 3k .
En utilisant l’identité de Bezout et le théorème de Fermat, montrer que :
b est un générateur de  19 si et seulement si k et 18 sont premiers entre eux.
d) Ecrire les entiers compris entre 1 et 18 et qui sont premiers avec 18.
e) En déduire tous les générateurs de  19 .

3) Le chiffrement El Gamal consiste à choisir comme clef privée un entier s. La clef


publique est constituée de trois entiers : p premier, a générateur du groupe  p et de

P calculé : P ≡ as [ p] .
Pour chiffrer un message M à transmettre (de longueur <p), on commence par tirer au
hasard un entier h dans {1,2,..., p − 1} qui reste secret, mais qui change à chaque
message et on calcule : C1 ≡ a h [ p] et C2 ≡ M.P h [ p] .
Le message chiffré est (C1 ,C 2 ) .

a) Expliquer, en s’aidant de  7 , pourquoi il est préférable que a soit un générateur


de  p .

b) Déchiffrement.
Montrer que si on connaît la clef publique (p,a,P), la clef privée s et (C1 ,C 2 ) on peut
retrouver le message M sans connaître h.
Les mathématiciens ont montré que lorsque p est grand, ceci n’est possible que si on
connaît s : c’est le difficile problème du logarithme discret.

c) Expliquer pourquoi le programme Maple ci-dessous déchiffre le message M.

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 54


Arithmétique et codes secrets 55

> restart;p:=113;a:=23;s:=8;#a est un générateur de Z/pZ.


p := 113
a := 23
s := 8
> P:=a^s mod p;
P := 97
> M:=100;h:=rand() mod p;C1:=a&^h mod p;C2:=M*P&^h mod p;
M := 100
h := 21
C1 := 71
C2 := 13
> y:=p-1-s;m:=C2*C1&^y mod p;
y := 104
m := 100
d) Donner un avantage et un désavantage de ce chiffrement.

4) Applications numériques
a) Chiffrement pour p=19
On choisit a=3, et s=6. Calculer P. Le message est M=6, on tire h=7. Calculer
(C1 ,C 2 ) .
b) Déchiffrement pour p=19
Le message transmis est (C1 ,C 2 ) = (18,15) , avec toujours a=3, et s=6. Retrouver M.
c) Déchiffrement pour p=113
Trouver le reste de la division de 15109 par 113.
On admet que a=5 est générateur de  113 .
On choisit a=5 et s=3. Le message transmis est (C1 ,C 2 ) = (15,103) . Retrouver M.

10.3 Matrices à coefficients dans  26 et chiffrement de


Hill, examen du 18 janvier 2006, OT « Mathématiques
et Codages »
1) Matrices à coefficients dans 
26 .
a) Comment sont caractérisés les éléments inversibles de 
26 ?
En faire la liste complète. Pour chacun d’eux préciser leur inverse (expliquer comment
il a été obtenu).
b) Soit M une matrice carrée à coefficients dans  .
26

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 55


Arithmétique et codes secrets 56

Montrer que M est inversible dans 


26 (c'est-à-dire qu’il existe une matrice M’ à
coefficients dans 
26 telle que MM’=M’M=I), si et seulement si le déterminant de
M est inversible dans 
26 .
c) Montrer que les matrices suivantes sont inversibles dans 
26 et calculer leur
 −1 0 1 
7 3  
inverse : K 2 =   =K 3  0 −1 1 
 4 1  1 1 −1 
 
Indication : la matrice inverse de K 3 peut ne comporter que des 0 ou des 1.

2) Le chiffrement de Hill.
Le mathématicien Lester Hill (1891-1961) a proposé ce chiffrement en 1929. On part
d’un texte alphabétique (sans séparateur), avec l’alphabet de 26 lettres A, B, ....., Z, et
d’une matrice M carrée d’ordre m, à coefficients dans  . Le message est alors
26
calibré à une longueur multiple de m (par ajout de lettres arbitraires, par exemple A),
puis coupé en blocs de longueur m. Chaque bloc est transformé en valeur numérique,
comme dans les cryptographies historiques étudiées. Ici on choisit la correspondance
suivante :

A B C D E F G H I J K L M
0 1 2 3 4 5 6 7 8 9 10 11 12

N O P Q R S T U V W X Y Z
13 14 15 16 17 18 19 20 21 22 23 24 25

On considère alors chaque bloc comme un vecteur dont on calcule l’image par la
matrice M. On décode ces valeurs numériques, et on obtient le message
(alphabétique) crypté.
Exemple
7 5 
Pour le message = INSA, m=2, et la matrice M1 =   . Le message est coupé en
 1 2
deux vecteurs (8, 13) et (18, 0).
Le message numérique crypté est 17 8 22 18, soit le message crypté final RIWS.
a) On choisit la matrice K 2 .
On donne le message CODAGES. Donner le message crypté.
On donne le message GWYF crypté par K 2 . Le décrypter.
b) On choisit la matrice K 3 .
On donne le message CODAGES. Donner le message crypté.
On donne le message BPNWIW crypté par K 3 . Le décrypter et commenter.
c) On donne le message crypté HUFSXBQKVLOPDMANDMEI par une matrice K
d’ordre 2. On sait que le message commence par REBONJOUR. Déterminer la
matrice K.
3) Quels sont les avantages et désavantages du chiffrement de Hill?

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 56


Arithmétique et codes secrets 57

10.4 RSA, théorème de Fermat et nombres pseudo-


premiers, examen du 18 avril 2006, EURINSA
approfondissement « Mathématiques discrètes »
Exercice 1 Arithmétique et cryptographie : RSA
Vous interceptez le message C = 171 , crypté par RSA et destiné à Bob. Dans un
annuaire de clefs publiques, vous lisez les clefs de Bob : N = 527 et e = 7 .
Décryptez le message C.

Exercice 2 Arithmétique et cryptographie : théorème de Fermat et nombres


pseudo premiers
Dans tout ce problème on note de la même façon un élément de  et sa classe
d’équivalence modulo n, et vous pouvez confondre = et ≡ .

Partie I

( n ) .

Pour n entier >2, on note {1,2,....,n − 1} les éléments de 

1) Montrer que : 390 ≡ 1 [7 ] et 390 ≡ 1 [13] . En déduire que 390 ≡ 1 [91] .

2) En utilisant une méthode similaire, montrer que 1105 est un nombre de


Carmichael, c'est-à-dire que pour tout entier a premier avec 1105, on a
a1104 ≡ 1 [1105 ] .

( n ) .

3) On considère les éléments inversibles (pour la multiplication) de 
Comment les caractériser ?
Montrer que l’ensemble de ces éléments inversibles est un groupe pour la
multiplication. On note  n ce groupe.
Lorsque n est un entier premier, quel est le nombre d’éléments de  n ?

Application numérique : donner la liste des éléments de  n et la table de la


multiplication pour n = 9 .

4) Pour tout a de  n on appelle Ga les puissances de a, c’est à dire :

Ga
= {a k , k ∈  }
Montrer qu’il existe q entier >0 tel que aq ≡ 1 [n] .
Indication : on remarquera que a k ne prend qu’un nombre fini de valeurs.

En déduire que Ga est un sous groupe de  n (pour la multiplication).

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 57


Arithmétique et codes secrets 58

Application numérique : Pour n = 9 , écrire tous les sous groupes Ga possibles et


indiquer le nombre de leurs éléments.

5) On note ω( a) le nombre d’éléments de Ga . Montrer que


aω( a) ≡ 1 [n] .

Partie II
Pour n entier >2 et a entier positif, on dit que n est a-pseudo premier si
an−1 ≡ 1 [n] .

1) Les nombres 91 et 1105 sont-ils pseudo premiers ? Sont-ils premiers ?

2) On veut utiliser la notion de nombre pseudo premier pour tester si n est premier.
L’entier n étant donné, si on trouve un entier a premier avec n, tel que an−1 ≠ 1 ,
alors n est composé, sinon on ne peut pas conclure.
Donner une valeur d’un entier n où ce critère ne permet pas de conclure pour un
premier choix de a, mais où on peut conclure avec un autre choix de a.
Donner une valeur de n où ce critère ne permet pas de conclure, quel que soit le
choix de a.

3) Soit n et a tels que n soit a-pseudo premier. Montrer que a appartient  n (c'est-à-
dire que a est inversible pour la multiplication dans l’ensemble des entiers modulo n).

4) Soit a dans  n . Montrer que n est a-pseudo premier si et seulement si ω( a)


divise (n-1).

5) Pour n=9, écrire toutes les valeurs de a telles que 9 soit a-pseudo premier.

6) Pour n entier >2, on pose H n =


{ a ∈  n n est a − pseudo premier } .
Montrer que H n est un sous groupe de  n .

Application numérique : comparer le nombre d’éléments de H n et de  n pour les


deux valeurs suivantes de n :
a) n = 9 b) n= 1109.

10.5 Sécurité, factorisation des entiers, examen du 24


janvier 2007, OT « Mathématiques et Codages »

Exercice 1 Sécurité
(barème indicatif : 3 points)
Comment Bob peut-il envoyer un message à Alice en assurant la confidentialité et
l’authenticité de son message ? Vous n’oublierez pas de définir ces deux notions.

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 58


Arithmétique et codes secrets 59

Exercice 2 Arithmétique et cryptographie : factorisation.


(barème indicatif : 10 points)
On sait que la sécurité des méthodes de cryptage à clef secrète repose sur
l’impossibilité de factoriser de grands nombres. Et que les cryptanalystes essayent de
les factoriser...
On donne ici les idées sur lesquelles sont fondés la plupart des algorithmes de
factorisation, idées qui datent du XVIIème siècle. En 1643, Fermat, répondant au Père
Mersenne qui le met au défi de factoriser 100 895 598 169, a l’idée d’écrire ce
nombre sous la forme d’une différence de deux carrés, afin de tirer parti de l’identité
n = X 2 − Y 2 = ( X + Y )( X − Y ) .

On note E la partie entière d’un réel r : E(r ) ∈  , E(r ) ≤ r < E(r ) + 1 .

n X2 −Y2 .
1) Soit n un entier premier, X et Y entiers tels que =
0 dans 
Ecrire tous les couples ( X ,Y ) vérifiant X 2 − Y 2 =
n .

On rappelle qu’un entier d diviseur de n s’écrit d ≡ 0 [ n ] ou d = 0 dans 


n , en
écrivant de la même façon les nombres et leur classe d’équivalence modulo n.
Pour la suite, on se place donc dans l’anneau  .
n

2) On donne n = 143 .

Etudier, dans l’anneau 


143 si
X − Y , X + Y , PGCD(n,X − Y ), PGCD(n,X + Y ) sont des diviseurs de 143 pour les
valeurs X et Y vérifiant X 2 − Y 2 ≡ 0 [143] suivants :
a) pour 12 − 1 ≡ 0 [143] ,
2 2

b) pour 37 2 − 15 2 ≡ 0 [143] .

LorsqueX − Y , X + Y ne sont pas des diviseurs de n, constater que


PGCD(n,X − Y ) et PGCD(n,X + Y ) sont des diviseurs de n, distincts de 1 et n.

n X 2 − Y 2 , tels que
3) Soit n entier, tel qu’il existe X et Y entiers vérifiant =
X − Y , X + Y ne sont pas des diviseurs de n.
a) Montrer que n est composé.
b) Montrer que PGCD(n,X − Y ) et PGCD(n,X + Y ) sont des diviseurs de n,
distincts de 1 et n.

La méthode de Fermat consiste alors à calculer les carrés modulo n d’entiers X


légèrement supérieurs à E ( n ) . L’espoir est de tomber sur un petit carré parfait Y 2

. La question 3 montre qu’on obtient alors des diviseurs intéressants de n.

4) On cherche à factoriser n = 17947 .

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 59


Arithmétique et codes secrets 60

a) On pose= + 1 134 . Calculer X 2 dans 


X E( n )= n .
b) En déduire deux diviseurs (différents de 1 et n) de n.
c) Déterminer la décomposition de n = 17947 en facteurs premiers.

5) On cherche à factoriser n = 849 239 .

a) Calculer PGCD(n,822 201) , PGCD(n,614 299) et PGCD(n,234 940) .


[Indiquer les calculs sur la copie.]
Vérifier qu’on obtient les nombres premiers 1229 et 691.
b) On pose= X E( n ) + 1 . Calculer x = X 2 dans  , avec x compris entre 0 et
n
( n − 1) .
Donner, la décomposition en facteurs premiers de x.
Peut-on en déduire, comme dans la question 4, la décomposition de n en facteurs
premiers ?
c) Calculer la décomposition en facteurs premiers de y, z et t :
933 ) ,t ( 937 ) dans 
)2 , z (= 2 2
=y ( 922
= , avec y ,z et t compris entre 0 et
n
( n − 1) .
d) En déduire que le produit 922 × 933 × 937 est un carré modulo n.
e) En déduire X et Y compris entre 0 et ( n − 1) , tels que X 2 − Y 2 ≡ 0 [n] .
f) En utilisant la question 3, déterminer deux diviseurs (différents de 1 et n) de n.
g) Déterminer la décomposition de n = 849 239 en facteurs premiers.

10.6 Groupes cycliques, protocole de Diffie-Helmann,


examen du 5 juin 2007, EURINSA approfondissement
« Mathématiques discrètes »
Tous les calculs qui ne se font pas directement avec la calculette doivent être
expliqués sur la copie.
Remarque : on note de la même façon un élément de  et sa classe d’équivalence
modulo n, et vous pouvez confondre = et ≡ .

Soit n un entier premier.

( )
 ∗ 
1) Soit a un élément de   ,×  .
 n 
=
a) Montrer que les puissances de a, c'est-à-dire Ga { ak , k ∈  } forment un groupe.
L’élément a est dit générateur de Ga , et Ga est dit engendré par a.
Quelles sont les valeurs possibles pour l’ordre de Ga ?

( )
 ∗ 
b) On considère le groupe multiplicatif   ,×  .
 37  
Trouver le sous groupe engendré par a = 36 .

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 60


Arithmétique et codes secrets 61

( )
 ∗ 
c) On considère le groupe multiplicatif   ,×  .
 43 
Trouver le sous groupe engendré par a = 41 .

x ≡ 36 [ 37 ]
2) Résoudre dans  2 le système  .
 x ≡ 35 [ 43]

3) RSA Alice veut envoyer un message M à Bob, avec le système de cryptographie


RSA.
Dans un annuaire de clefs publiques, elle trouve les clefs publiques de Bob :
N = 1591 et e = 5 . Elle envoie MC = 1331 , crypté par RSA et destiné à Bob. Mais
comme N n’est pas très grand, vous allez pouvoir décrypter ce message.
a) Expliquer ce que représente d, tel que MC d [1591] soit égal au message M.
b) Calculer une valeur de d.
c) Comme le calcul de M = MC d [1591] est difficile avec une calculette, montrez,
en utilisant les questions précédentes que :
 MC d ≡ 36 [ 37 ]
 d
.
 MC ≡ 35 [ 43]
En déduire le message M.

4) Protocole de Diffie-Hellmann
Alice et Bob ne disposent que d’un canal peu sûr, et veulent construire une clef
secrète qui va leur permettre ensuite d’échanger des données.
i) Un des deux choisit un grand nombre premier p, et construit un générateur g du

( ) ,×
 ∗
groupe   (on admet que lorsque p est premier ceci est toujours
p

possible). Alice et Bob échangent ces valeurs de p et g par l’intermédiaire du canal.
ii) Alice choisit un entier a dans {2,3,....., p − 1} , qu’elle garde secret. Elle calcule
A ≡ ga [ p]
qu’elle transmet à Bob, toujours par le même canal.
iii) Bob choisit un entier b dans {2,3,....., p − 1} , qu’il garde secret. Il calcule
B ≡ gb [ p]
qu’il transmet à Alice, toujours par le même canal.
ab
iv) La clef commune est K ≡ g [ p] .
a) Expliquer comment Alice et Bob calculent leur clef.

( )

b) Pourquoi choisit-on un générateur de  ?
p
c) Expliquer, lorsque p est grand, pourquoi Oscar qui a pu récupérer toutes les
valeurs qui ont transité par le canal, ne peut pas calculer K.
d) Application numérique= p 17= , g 5,= a 6,= b 8.

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 61


Arithmétique et codes secrets 62

Calculer A, B et la clef secrète.

10.7 RSA, RSA-CRT utilisé lors de la validation des cartes


bancaires, examen du 2 juin 2009, EURINSA
approfondissement « Mathématiques et codages »

Exercice 1 RSA avec authentification (barème indicatif : 7 points)


Alice doit envoyer des notes M (M est un entier ≤ 40 ) à Bob, en étant sûre que ses
notes ne peuvent pas être modifiés . De plus Bob veut être certain que les notes
reçues proviennent bien d’Alice. Ils vont utiliser le procédé de cryptographie RSA
pour le cryptage et l’authentification. Au préalable, ils sont déposé auprès d’un
organisme certificateur leurs clefs publiques :
- pour Alice N a = 57 , ea = 7
- pour Bob N b = 55 , eb = 3 .
Ils ont choisi comme fonction de hachage la somme des chiffres de M, soit s = h( M ) .

1) Expliquer ce que représentent ces clefs, et calculer les clefs privées d’Alice et de
Bob. On les notera pa , q a , da pour Alice et pb , qb , db pour Bob.
2) Alice veut envoyer la note M = 13 à Bob. La signature de cette note est
=s h(= M) 4 .
Alice va crypter M avec les clefs publiques de Bob et obtenir C. Donner la valeur de la
note cryptée C. Alice signe la note M , en cryptant avec sa clef privée da , elle obtient
S qu’elle transmet à Bob. Calculer S.
Aide au calcul : 49 ≡ 1 [ 57 ]

3) Alice veut maintenant transmettre une note M, qu’elle crypte avec les clefs de Bob
et obtient le message crypté C = 36 , qu’elle transmet à Bob. Elle calcule alors
s = h( M ) , qu’elle crypte avec sa clef privée da , elle obtient S = 28 qu’elle transmet à
Bob.
Quelle est la valeur de la note M décryptée par Bob ? Expliquer les calculs de Bob.
Expliquer comment Bob s’assure que cette note est bien authentique.
Aide au calcul : 36 5 ≡ 1 [ 55 ]

Exercice 2 RSA-CRT (barème indicatif : 7 points)


L’algorithme de signature RSA est utilisé dans le processus de payement par carte
bancaire en mode signature. Avec des clefs privées ( p,q,d) et des clefs publiques
( N ,e) , la méthode standard, consiste à signer le message M par S = M d [mod N ] .
Afin d’améliorer les performances de ce calcul, on utilise l’algorithme CRT de Henri
Garder fondé sur le théorème chinois. On montre qu’alors le calcul est presque quatre
fois plus rapide qu’avec la méthode standard.

On donne p et q entiers premiers, N = pq , d premier avec ( p − 1)(q − 1) et un


message M, de longueur inférieure à p et q.

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 62


Arithmétique et codes secrets 63

1) On pose d ≡ dp [ p − 1] , avec dp reste de la division de d par ( p − 1) . Montrer


dp
que M d ≡ M [ p] .
On calcule de même dq ≡ d [q − 1] , puis on effectue les exponentiations :
dp
Sp ≡ M [ p] et Sq ≡ M d [q ] .q

Le théorème chinois permet d’affirmer que la signature S est solution du système :


S ≡ M d ≡ Sp
 [ p]
 .
d
 S ≡ M ≡ Sq [q ]
Pour appliquer ce théorème on détermine les entiers relatifs u et v tels que :
up + vq =1.
2) Montrer que S ≡ (Sq − Sp )up + Sp [ pq ] .
(C’est ainsi qu’est programmé l’algorithme RSA-CRT.)
3) Application numérique
On donne= p 311,= q 353,= M 36, = d 72747 (cette valeur est l’inverse de
e = 3 , utilisé dans l’authentification des cartes bancaires).

Calculer, à l’aide de l’algorithme RSA-CRT, la signature S = M d [mod N ] . Les


différentes valeurs utilisées ci-dessus devront être précisées sur votre copie.
Aide au calcul : 36 5 ≡ 1 [ 311] et 368 ≡ −1 [ 353] .

4) On revient au cas général. On va montrer que cet algorithme est sensible à une
attaque par faute.
Montrer que S peut s’écrire : S ≡ aSp + bSq , avec
 a ≡ 1 [ p] b ≡ 0 [ p ]
.
 
 a ≡ 0 [q ]  b ≡ 1 [ q ]
5) Un attaquant peut, en agissant de façon externe, provoquer une faute
lors du calcul de Sp . Au lieu d’obtenir Sp , l’algorithme calcule S'p .
La signature est alors S' ≡ aS'p + bSq .
Montrer que si l’attaquant connaît S, S’ et N = pq , il peut calculer q,
c'est-à-dire casser le code, en utilisant un algorithme très rapide.

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 63


Arithmétique et codes secrets 64

11 BIBLIOGRAPHIE
• Jacques Stern, La science du secret, Editions Odile Jacob (DOC’INSA 22525)
• Simon Singh, Histoire des codes secrets, Le livre de Poche (Bibliothèque des
Humanités 5/6 (091) SIN)
• Jean Luc Delahaie, Merveilleux nombres premiers, Edition Belin (DOC’INSA
usuel et 15648)
• Gilles Dubertret, Initiation à la cryptographie, Edition Vuibert (DOC’INSA
14625).
• Pierre Vigoureux, Cryptographie, libertés individuelles et codes secrets,
Editions Ellipses (DOC’INSA 25706).
• Johannes Buchmann, Introduction à la cryptographie, Editions Dunod
(DOC’INSA 26552).
• Bruno Martin, Codage, cryptologie et applications, Ed. Presses Polytechniques
et universitaires Romandes (DOC’INSA 21937).
• Dany-Jack Mercier, L'algèbre dans la correction des erreurs,
http://megamaths.perso.neuf.fr/documents/ccod0002.pdf

www.bibmath.net/crypto/index.php3
www.apprendre-en-ligne.net/crypto/menu/index.html
www.sciences.ch/htmlfr/infotheorique/infocrypto01.php

© [FACK Hélène], [2005], INSA de Lyon, tous droits réservés. 64

Вам также может понравиться