Arithmétique modulaire pour la cryptographie - Pierre

publicité
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Arithmétique modulaire pour la cryptographie
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI,
123, Av. Albert Thomas
87060 Limoges Cedex France
05.55.45.73.10
[email protected]
Licence professionnelle Administrateur de Réseaux
et de Bases de Données
IUT Limoges
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Sommaire
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Les nombres premiers suite et fin
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Les nombres premiers
I
Algo 2 : utilisable pour des nombres de 12 chiffres ou un peu plus
⇒ impossible de décomposer des nombres de 100 chiffres.
⇒ la multiplication est donc une fonction à sens unique
(sous certaines conditions)
I
I
Si n = pq (p et q grand), connaissant p et q il est facile de calculer n
MAIS connaissant n il est difficile de trouver p et q
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Une infinité de nombres premiers
I
Théorème :
Le sous-ensemble constitué par les nombres premiers est infini.
I
Démonstration : Supposons que cet ensemble soit fini :
E = {p1 , ..., pn }.N = p1 p2 ...pn + 1.N n’est divisible par aucun des pi
et n’est pas premier
⇒ contradiction
I
Il y a une infinité de nombres premiers.
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Quelques pré-requis mathématiques
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Le pgcd
I
I
Définition :
Parmi l’ensemble des diviseurs communs à deux entiers a et b, le
PGCD, est le plus grand commun diviseur.
Théorème : a, b, c dans N et n dans Z
I
I
pgcd(ac, bc) = |c|.pgcd(a, b)
pgcd(a, b) = pgcd(a, b + na)
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Propriétés du pgcd
I
Propriétés :
I
I
I
pgcd(a; b) = pgcd(b; a)
pgcd(a; 1) = 1
Soit a0 = a/pgcd(a; b) et b0 = b/pgcd(a; b).
Alors pgcd(a0 ; b0 ) = 1.
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Euclide
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Quelques pré-requis mathématiques
Théorème d’Euclide
I
Soit a, b ∈ N/a ≤ b. Soit r le reste de la division euclidienne de a
par b. Alors pgcd(a, b) = pgcd(b, r ).
I
Algorithme :
I
I
I
Tq b 6= 0 : (a, b) → (b, a mod b)
si b = 0 renvoyer a
Exemple : pgcd(42, 30) = 6
(42, 30) → (30, 12)
(30, 12) → (12, 6)
(12, 6) → (6, 0)
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Calcul de pgcd
I
Utilisation de l’algorithme d’Euclide pour déterminer pgcd(a, b)
I
I
I
I
I
I
R0 := |a|; R1 := |b|; (b 6= 0)
tant que R1 > 0 faire
R := ResteDivision(R0 ; R1 ); R0 := R1 ; R1 := R;
Le dernier reste non nul est le pgcd.
Exemple : a = 325, b = 145
On a successivement
R0 = a = 325; R1 = b = 145
R0 = 2R1 + 35 ⇒ R = 35; R0 = 145; R1 = R = 35;
R0 = 4R1 + 5 ⇒ R = 5; R0 = 35; R1 = 5;
R0 = 7R1 + 0; R0 = 5; R1 = 0.
Donc pgcd(325; 145) = 5.
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Nombres premiers entre eux
I
I
Définition : lorsque pgcd(a, b) = 1, on dit que a et b sont premiers
entre eux.
Remarques :
I
I
cela signifie que leur seul diviseur commun est 1.
un nombre premier est premier avec n’importe quel autre nombre
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Arithmétique modulaire
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Congruence et modulo : arithmétique modulaire
I
Définition : a est congru à b modulo n signifie :
∃k ∈ Z/a = k.n + b
≡ a et b ont le même reste dans la division par n
Ne diffère que par un multiple de n.
a − b est un multiple de n.
I
Écriture : a = b mod n ou a = b[n]
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Classes d’équivalence
I
I
Définition : On appelle classe modulo n d’un élément x de N,
l’ensemble des y qui sont congrus à x modulo n.
Remarques :
I
I
I
I
x = y mod n ssi ils ont le même reste dans la division par n
les n restes possibles permettent de définir les n classes d’équivalence
modulo n.
Ces n classes se notent Z/nZ
Z/nZ est l’ensemble quotient de Z par la congruence mod n
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Classe d’équivalence
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Classes d’équivalence : addition
I
L’addition sur Z/nZ conserve ses propriétés classiques :
Commutativité : x + y = y + x mod n
Associativité : (x + y ) + z = x + (y + z) mod n
I Élément neutre : 0 + x = x + 0 = x mod n
I Existence d’un opposé : x − x = 0 mod n
⇒ On dit que Z/nZ, est un groupe pour +
I
I
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Addition Z/4Z
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Classes d’équivalence : multiplication
I
La multiplication conserve :
La commutativité
L’associativité
I L’élément neutre 1
I L’élément absorbant 0
I La distributivité par rapport à l’addition
I PAS L’EXISTENCE D’UN INVERSE
⇒ On dit que (Z/nZ, +, ×) est un anneau commutatif
I
I
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Multiplication Z/4Z
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Multiplication Z/6Z et Z/7Z
Exercice :
Faire les tables de multiplication modulo 6 et modulo 7
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Multiplication Z/6Z et Z/7Z
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Les diviseurs de zéro
I
Pour que x possède une classe inverse, il faut et il suffit que
pgcd(x, n) = 1. Cet inverse est unique et on le note x −1 .
I
Si pgcd(x, n) 6= 1 alors il existe y tel que x × y = 0. On dit que x
est un diviseur de zéro.
I
Si n est premier alors tout élément sauf 0 possède un inverse.
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Etienne Bezout
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Quelques pré-requis mathématiques (2)
Théorème de Bezout
I
I
Soient a, b ∈ Z et d = pgcd(a, b). Alors ∃(u, v ) ∈ Z2 tels que
au + bv = d
Les entiers u et v sont appelés coefficients de Bezout.
Calcul pratique : Algorithme d’Euclide Etendu
I
I
I
(E0 ) : 1 × a + 0 × b = a
(E1 ) : 0 × a + 1 × b = b
(Ei+1 ) = (Ei−1 ) − qi (Ei )ui × a + vi × b = ri
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Application sur le calcul d’inverse modulaire
Exercice :
Calcul de 17−1 mod 50
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Application sur le calcul d’inverse modulaire
I
Calcul des coefficients de Bezout pour a = 50 et b = 17
E0 : 1 × 50 + 0 × 17 = 50
50
= 2; r1 = 50 mod 17 = 16
17
17
E2 : E0 −2×E1 ; 1×50+(−2)×17 = 16; q2 =
= 1; r2 = 17 mod 16 = 1
16
16
= 16; r3 = 16 mod 1 = 0
E3 : E1 −1×E2 ; (−1)×50+3×17 = 1; q3 =
1
E1 : 0 × 50 + 1 × 17 = 17; q1 =
I
Bilan : (−1) × 50 + 3 × 17 = 1 ⇒ 17−1 = 3 mod 50
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Théorèmes (1/2) :
I
Théorème :
si a = b mod n et u = v mod n alors a + u = b + v mod n et
a × u = b × v mod n
I
Théorème :
Un entier a est inversible dans Z/nZ ssi a et n sont premiers entre
eux
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Théorèmes (2/2) :
I
Théorème :
si p est premier alors tout élément non nul de Z/pZ est inversible
Notation : Z/pZ∗ désigne l’ensemble des éléments inversible de
Z/pZ
Remarque : si p est premier Z/pZ∗ = Z/pZ privé de 0.
I
Théorème :
un entier p est premier ssi Z/pZ ne contient pas de diviseurs de 0
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Résolution des équations sur les congruences
Supposons que l’on cherche à résoudre :
3x = 5
mod 7
Cela est facile car le modulo est premier : On sait que 3−1 = 5
mod 7, on a donc x = 5 × 5 = 4 mod 7.
Quand le modulo n’est pas premier nous avons le théorème
suivant :
I
Théorème :
Si a, b et m sont des entiers, et si pgcd(a, m) = d alors :
I
I
Si d ne divise pas b, alors ax = b mod m n’a pas de solution
Sinon l’équation précédente a exactement d solutions.
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Résolution des équations sur les congruences (2)
Cherchons à résoudre par exemple :
6x = 9
mod 15 ⇒ 3(2x − 3) = 0 mod 15
On sait que 3 est un diviseur de zéro, donc :
3×0 = 0
mod 15,
3×5 = 0
mod 15,
3 × 10 = 0
mod 15
Donc les solutions sont :
I
2x − 3 = 0 mod 15 d’où x = 9 mod 15,
I
2x − 3 = 5 mod 15 d’où x = 4 mod 15,
I
2x − 3 = 10 mod 15 d’où x = 14 mod 15.
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Fonction indicatrice d’Euler
I
Elle est notée f ou φ
I
Définition : φ(n) est égale au nombre d’entiers entre 0 et n − 1
premiers avec n.
I
φ(n) correspond aussi au nombre d’éléments inversibles de Z/nZ
I
Par convention, φ(0) = 0 et φ(1) = 1
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Théorèmes (1/3) :
I
Théorème :
Un entier p est premier ssi φ(p) = p − 1
I
Théorème :
Si n et m sont entiers strictement positifs et premiers entre eux alors
φ(n × m) = φ(n) × φ(m)
I
Théorème :
Si p est premier et n = p k alors φ(n) = p k (1 − 1/p) = p k − p k−1
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Théorèmes (2/3) :
I
Théorème :
Si n se décompose en produit de facteurs premiers p1 × p2 × ... × pr
alors
1
1
1
φ(n) = n × (1 − ) × (1 − ) × ... × (1 − )
p1
p2
pr
I
Théorème :
P
tout n > 0 peut s’écrire φ(n) = d|n φ(d)
I
Théorème :
Si n et a sont deux entiers strictement positifs et premiers entre eux
alors aφ(n) = 1 mod n
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Pierre de Fermat
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Théorèmes (3/3) :
I
Petit théorème de Fermat : Si p est premier et ne divise pas a (p
et a premiers entre eux) alors ap−1 = 1 mod p
I
Généralisation : Si n et a sont deux entiers strictement positifs et
premiers entre eux, alors
∃k > 0/ak = 1
mod n
et le plus petit k vérifiant cette propriété divise φ(n).
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Élément générateur
I
Théorème :
Soit p un nombre premier. Alors, le groupe multiplicatif Z/pZ∗ est
cyclique. C’est-à dire que ce groupe peut être engendré par un
élément générateur (dit aussi élément primitif) : il existe un élément
α tel que
Z/pZ∗ = {1, α, α2 , . . . , αp−2 }.
I
Théorème :
Le nombre de générateurs de Z/pZ∗ est égal à φ(p − 1) où φ est la
fonction indicatrice d’Euler.
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Exponentielle et logarithme modulaire
I
Définition : La fonction exponentielle de Z/nZ dans Z/nZ est
définie par x → ax mod n.
I
Définition : Calculer le logarithme en base a, c’est, étant donné
A = ax mod n, déterminer x dans Z/nZ
I
Ce calcul n’est possible que si x → ax mod n est une bijection
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Calcul de la puissance modulaire
I
107 = 130 mod 257
I
1015 = 130 × 130 × 10 = 151 mod 257
I
1031 = 151 × 151 × 10 = 51 mod 257
I
1062 = 51 × 51 = 31 mod 257
I
10124 = 31 × 3 = 190 mod 257
I
10249 = 190 × 190 × 10 = 172 mod 257
I
10499 = 172 × 172 × 10 = 33 mod 257
I
10999 = 33 × 33 × 10 = 96 mod 257
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Le théorème des restes chinois
I
Soit m1 , m2 , . . . , mr une suite d’entiers positifs premiers entre eux
deux à deux. Alors le système de congruences :
a une solution unique x mod M = m1 × m2 × . . . × mr :
x = a1 M1 y1 + a2 M2 y2 + . . . + ar Mr yr
avec
Mi = M/mi
Pierre-Louis Cayrel
yi Mi = 1
mod mi
logo-xlim
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Le théorème des restes chinois : un exemple
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Le théorème des restes chinois : un exemple (2)
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Racines primitives
I
Définition : soit n un entier et φ(n) l’indicateur d’Euler. On appelle
racine primitive de n un nombre a avec 1 < a < n tel que :
I
I
I
a est premier avec n
ad 6= 1, ∀d/0 < d < φ(n)
En particulier, si n est un nombre premier et 1 < a < n, a est une
racine primitive de n si
ad 6= 1, ∀d/0 < d < n − 1
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Ordre et racines primitives :
I
Définition :
Soit p un nombre premier. On appelle ordre d’un nombre a de
Z/pZ, la plus petite valeur k/ak = 1 mod p.
I
Une racine primitive est donc un élément a d’ordre maximal p − 1,
i.e. ap−1 = 1 mod p.
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Exponentiation rapide modulaire : calcul de ae mod n
I
Basé sur la remarque suivante :
I
I
I
si e est pair, ae = (ae/2 )2
si e est impair ae = (ae/2 )2 × a
Algorithme d’exponentiation rapide modulaire
1. Décomposer e en binaire : e =
2. Calcul de {a
I
2i
Pk
i=0
ei 2i
mod n}0≤i≤k
i+1
Utiliser la relation : a2
i
= (a2 )2 mod n
i
3. En déduire ae = Πki=0 (a2 )ei
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Exponentiation rapide modulaire
Exercice :
Calcul de 5144721 mod 17 (E )
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Les nombres premiers
Quelques pré-requis mathématiques
Arithmétique modulaire
Exponentiation rapide modulaire
51447 = 3026 × 17 + 5 donc (E ) ≡ 521 mod 17
1. Décomposition de 21 en binaire : 21 = 24 + 22 + 20
i
2. Calcul de {52 mod 17}0≤i≤4
I
I
I
I
I
i
i
i
i
i
0
= 0 : 52
1
= 1 : 52
22
=2:5
3
= 3 : 52
4
= 4 : 52
= 5 mod 17
= 52 = 25 = 8 mod 17
= 82 = 64 = 13 = −4 mod 17
= (−4)2 = 16 = −1 mod 17
= (−1)2 = 1 mod 17
4
2
0
3. On en déduit : 521 = 52 × 52 × 52 = 1 × (−4) × 5 = −20 = 14
mod 17
logo-xlim
Pierre-Louis Cayrel
Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 [email protected]
Arithmétique modulaire pour la cryptographie
Téléchargement