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