La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Arithmétique Modulaire Comprendre le calcul dans Z modulo un entier m Des algorithmes efficaces pour le calcul dans Z/m Puissance modulaire rapide.

Présentations similaires


Présentation au sujet: "Arithmétique Modulaire Comprendre le calcul dans Z modulo un entier m Des algorithmes efficaces pour le calcul dans Z/m Puissance modulaire rapide."— Transcription de la présentation:

1 Arithmétique Modulaire Comprendre le calcul dans Z modulo un entier m Des algorithmes efficaces pour le calcul dans Z/m Puissance modulaire rapide

2 Mathématiques  Informatique Mathématique: on résout un problème en l’existence d’une solution Informatique: on cherche à construire cette solution en s’intéressant à l’efficacité de la construction

3 Exponentiation Calcul de x n = x.x.… x Algorithme simple : (n-1) multiplications Optimisation si n=2 k x n = ( ( (x) 2 ) 2.… ) 2 K multiplications

4 Entiers pairs et impairs Les nombres entiers se répartissent en entiers pairs et entiers impairs : 0 := {a  Z | a mod 2 = 0} 1:= {a  Z | a mod 2 = 1}

5 Entiers modulo 3 Généralisons cette idée des entiers pairs et entiers impairs, et regardons maintenant le reste modulo 3 au lieu de 2. Ici les nombres entiers se répartissent en trois classes : := {a  Z | a mod 3 = 0} := {a  Z | a mod 3 = 1} := {a  Z | a mod 3 = 2}

6 Processeurs binaires Tout nombre entier a s’ écrit de manière unique en base B comme: a = (a n, a n−1,..., a 1, a 0 ) B := a n B n + a n−1 B n−1 + · · · + a 1 B + a 0. où a n, a n−1,..., a 1, a 0  Z vérifient 0 ≤a k ≤ B pour tout k. Calculer modulo B signifie que l’on ne retient que le dernier « chiffre » a 0. Calculer modulo B k signifie que l’on ne retient que les k derniers chiffres. Exemple Un processeur à 64 bits fournit des « petits entiers » allant de 0 à 2 64 − 1. Si le résultat dépasse la plage {0,..., 2 64 − 1}, le processeur ne retient du résultat que les 64 bits bas et supprime d’éventuels bits hauts. Ceci revient à réduire systématiquement tous les calculs modulo Conclusion La structure mathématique ainsi implémentée n’est pas l’anneau (Z,+, ·) des entiers mais l’anneau quotient (Z/2 64,+, ·) des entiers modulo 2 64.

7 La congruence modulo m Définition (congruence modulo m) Soient a, b,m  Z. Si m | a − b, on dit que a et b sont congrus modulo m, ou aussi que a est congru `a b modulo m, noté a  b mod m ou a  b (m). Exemples a  b (0) si et seulement si a = b. a  b (1) pour tout a, b  Z. a  b (2) si et seulement a et b ont la même parité.

8 La congruence modulo m est une relation d’équivalence Proposition (relation d’équivalence) Pour tout a, b, c  Z on a a  a (m) (réflexivité) a  b implique b  a (symétrie) a  b et b  c impliquent a  c (transitivité)

9 La congruence modulo m représentant canonique Proposition Si a = qm + r alors a  r (m). En particulier r = a mod m vérifie a  r (m). Si m > 0 et 0 ≤ r < m, 0 ≤ r0 < m, alors r  r0 (m) implique r = r0. Démonstration. Explicitons le dernier point, le reste étant clair. On peut supposer que r ≥ r’. Ainsi on obtient 0 ≤ r − r’ < m. Or, la congruence r  r’ (m) veut dire que m | r − r’. Ceci n’est possible que pour r − r' = 0. Autrement dit, pour m > 0 et tout a  Z le reste r = a mod m est l’unique représentant de la classe de congruence de a modulo m vérifiant 0 ≤ r < m.

10 Calcul modulo m : compatibilité Proposition (compatibilité avec les opérations) Si a  a’ (m) et b  b’ (m) alors a + b  a’ + b’ (m). a · b  a’ · b’ (m). a n  a’ n (m).

11 Calcul modulo m : exemples Exemples Si a = (a n, a n−1,..., a 1, a 0 ) 10 = a n 10 n + a n−1 10 n−1 + · · · + a a 0, alors a  a 0 (10) car 10  0 (10), a   n k=0 a k (9) car 10  1 (9), a   n k=0 (-1) k (11) car 10  -1 (11),  la divisibilité par 10, 9, 11. Exercice Calculer (de tête) la dernière décimale de Solution. Calculant modulo 10 on trouve   (−1)  −1  9.

12 L’ensemble quotient Z/m des entiers modulo m Définition Z/m = Z/mZ est l’ensemble quotient de Z par la relation de congruence R m. On note  m : Z → Z/m l’application quotient définie par  m (x) := cl(x). On a la propriété fondamentale : cl(x) = cl(y) si et seulement si x  y (m).

13 Implémentation des opérations modulo m Calculer dans le quotient Z/m, c’est calculer dans Z modulo m, c’est donc la r éduction au reste de la division euclidienne par m.

14

15

16

17 Exponentiation binaire Idée: décomposer l’exposant en écriture binaire Exemple: n= 6=4+2 x 6 =1.x 2.x 4 = ( ( (1) 2 x ) 2 x ) 2.1 n=11=8+2+1 x 11 =x.x 2.x 8 = ( ( ( (1) 2 x ) 2 1 ) 2 x ) 2.x

18 Exponentiation binaire y= 1; n=  0 k b i.2 i for i =0, k do y = y 2 if b i = 1then y = y.x done Return y

19 Exponentiation modulaire Soient a, x et n ; calculer a x mod n Surtout ne pas faire le calcul Exemple: = 1 mod 7 Calcul immédiat: faire les réductions modulaires au fur et à mesure

20 Exponentiation binaire y= 1; n=  0 k b i.2 i for i =0, k do y = y 2 mod n if b i = 1then y = y.a mod n done Return y

21 Exponentiation binaire y= 1; P=a; w hile x > 0 do if x impair then y = y. P mod n n = x / 2; P = P 2 mod n; done Return y


Télécharger ppt "Arithmétique Modulaire Comprendre le calcul dans Z modulo un entier m Des algorithmes efficaces pour le calcul dans Z/m Puissance modulaire rapide."

Présentations similaires


Annonces Google