Chapitre XV Chapitre XV : Eléments d’arithmétique Introduction Les méthodes modernes de cryptographie font souvent appel à des notions d’arithmétique, non seulement sur l’ensemble des nombres entiers Z, mais aussi parfois sur des ensembles plus généraux. Introduction Pour une bonne introduction à la cryptographie : J.A. Buchmann, "Introduction to Cryptography", Springer-Verlag, 2002. Corps et anneaux Remarque : on a très brièvement parlé de l’ensemble des nombres entiers au Chapitre II. On avait remarqué que Z ne forme pas un corps (lorsqu’on le munit de l’addition et la multiplication usuelles) car certains éléments n’ont pas d’inverse dans Z. Par exemple, / Z. 2 ∈ Z mais 12 ∈ Corps et anneaux En mathématiques, les ensembles munis de deux lois internes (addition et multiplication) telles que toute les propriétés de corps sont satisfaites (voir Chapitre II) sauf peut-être l’existence d’inverses pour la multiplication et la commutativité de la multiplication sont appelés anneaux. Corps et anneaux Donc, (A, +, .) est forme un anneau si 1 (A, +) forme un groupe commutatif, 2 il existe un élément neutre pour la multiplication 1 ∈ A, 3 a.(b + c) = a.b + a.c et (a + b).c = a.c + b.c pour tous a, b, c ∈ A. Corps et anneaux Exemple 1 (Z, +, .) est un anneau. Exemple 2 N’importe quel corps commutatif un anneau. La notion d’anneau généralise donc celle de corps commutatif. Corps et anneaux Exemple 3 L’ensemble (Mat(n × n, R), +, .) des matrices à coefficients réels forme un anneau pour l’addition de matrice + et la multiplication matricielle ., ce n’est pas un corps car certaines matrices ne sont pas inversibles. On peut remplacer R par un autre corps : (Mat(n × n, K), +, .) est toujours un anneau quel que soit le corps K. Corps et anneaux Remarque : on a vu dans les chapitres précédents que Mat(n × n, R) forme un aussi espace vectoriel réel lorsqu’on considère l’addition de matrices et la multiplication de matrices par un scalaire. Ceci n’est pas un problème : on peut munir Mat(n × n, R) de plusieurs structures en fonction des questions qu’on cherche à étudier. Si on considère l’addition de matrices et la multiplication par un scalaire, on a un espace vectoriel. Si on considère plutôt l’addition et la multiplication matricielle, on a un anneau. Corps et anneaux Exemple 4 L’ensemble (R[X ], +, .) des polynômes à coefficients réels muni de l’addition et de la multiplication de polynômes est un anneau. Ce n’est pas un corps car un polynôme non nul n’est pas inversible dans R[X ]. A nouveau, ceci n’est pas spécifique à R : l’ensemble K[X ] des polynômes à coefficients dans K forme toujours un anneau pour K un corps quelconque. Corps et anneaux Exemple 5 On avait vu au Chapitre II que l’ensemble Zm = {0, 1, . . . , m − 1} muni de l’addition et de la multiplication modulo m forme un corps uniquement si m est premier. Si m n’est pas premier, on a des éléments non inversibles pour la multiplication. Dans tous les cas, Zm forme un anneau. L’anneau (Zm , +, .) est souvent utilisé en cryptographie, par exemple comme alphabet pour coder un message (nous avons donné un exemple concret lorsque m est premier dans le Chapitre X). Corps et anneaux Rappel : pour effectuer un produit/une multiplication dans Zm = {0, 1, . . . , m − 1}, on effectue le produit/la multiplication dans Z et on prend le reste de la division par m. Exemple 6 Dans l’anneau Z4 = {0, 1, 2, 3} des entiers modulo 4, on a 3.3 = 9 = 1 donc 3 admet un inverse : c’est 3 lui même. Par contre, 2 n’est pas inversible car 2.2 = 0, 2.3 = 6 = 2. Corps et anneaux Utiliser l’anneau (Zm , +, .) comme alphabet permet d’appliquer toutes les techniques et résultats de l’arithmétique aux mots du message qu’on désire crypter. C’est bien pratique et on verra un exemple d’application : le système RSA. Corps, anneaux, groupes, espaces vectoriels Il faut prendre garde à bien pouvoir distinguer les différentes structures mathématiques vues jusqu’à présent : 1 Les corps, 2 Les groupes, 3 Les anneaux, 4 Les espaces vectoriels. Voyez-vous bien la différence entre toutes ces structures ? Arithmétique dans Z Etudions plus en détails la structure de l’anneau (Z, +, .). Arithmétique dans Z Commençons par un rappel de l’école primaire : la division euclidienne. Soient a, b ∈ Z avec b 6= 0. Alors il existe des entiers uniques q et r tels que a = bq + r , 0 6 r < |b|. On dit que q est le quotient de a par b tandis que r est le reste. Arithmétique dans Z Si le reste de la division euclidienne de a par b est nul, on dit que b divise a, que b est un diviseur de a ou que a est un multiple de b. Cela revient donc à dire que a = bq pour un certain entier q ∈ Z. On note souvent a | b le fait que a divise b. Arithmétique dans Z Remarque : quel que soit b ∈ Z, on a b | 0 vu que 0 = b.0. De même, 1 | b vu que b = b.1. Arithmétique dans Z Exemple 7 11 divise 341 vu que 341 = 11.31, mais 8 ne divise pas 341 car 341 = 8.42 + 5 = 336 + 5 donc le reste de la division de 341 par 8 vaut 5 6= 0. Un nombre entier p > 1 qui n’est divisible que par 1 et par lui même est dit premier. Arithmétique dans Z Les nombres premiers inférieurs à 100 sont : 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97. Arithmétique dans Z Les nombres premiers sont fort utilisés en cryptographie, notamment dans le système RSA (Ronald Rivest, Adi Shamir et Leonard Adleman) qui est un des systèmes les plus sûrs à l’heure actuelle. Il vaut donc la peine de passer un peu de temps à les étudier. Arithmétique dans Z Etant donné un nombrer entier positif quelconque n, peut-on trouver un algorithme efficace pour déterminer si n est premier ? Pour petit un nombre (comme n = 1231 par exemple), la réponse semble immédiate : on essaye tous les nombres de 1 à n, si on en trouve un qui divise n alors n n’est pas premier, sinon il est premier. Arithmétique dans Z Cet algorithme naïf est applicable pour des petits nombres. On peut même optimiser un petit peu : il n’est nécessaire de chercher √ un éventuel diviseur que jusqu’à n (vu que si n = pq alors √ √ p 6 n ou bien q 6 n). Mais même au moyen d’ordinateurs très puissants, cet algorithme devient vite inutilisable pour des grands nombres (plus de 100 chiffres). Arithmétique dans Z "Pour un nombre quelconque de 100 chiffres, cet algorithme nécessite environ 1050 essais dans les cas les plus longs à traiter. Or, même à raison de dix-milliards d’essais par seconde, il faudrait 1040 secondes soit 3 × 1032 années pour terminer le test. Cette valeur est manifestement déraisonnable : elle est bien supérieure à l’age estimé de l’Univers (15 milliards d’années). D’ici à 2030, si les progrès techniques ont continué à la vitesse extrêmement rapide d’aujourd’hui, la durée du calcul sera descendue à 3 × 1026 années, ce qui reste très supérieur à l’âge de l’univers." Jean-Paul Delahaye, Merveilleux nombres premiers, Belin-Pour la science, 2000. Arithmétique dans Z L’ouvrage de Jean-Paul Delahaye (professeur d’informatique à l’université de Lille) continent énormément d’informations sur les nombres premiers et leurs applications en cryptographie. Une nouvelle version est parue en 2013 : Jean-Paul Delahaye, Merveilleux nombres premiers, Belin-Pour la science, 2013. Arithmétique dans Z De nombreux algorithmes permettant de déterminer si un nombre est premier on été mis au point par des informaticiens/mathématiciens : ce sont les tests de primalité. Arithmétique dans Z Fait : tout nombre n > 2 soit est premier, soit admet un diviseur premier. La démonstration de ce fait est immédiate si on procède par récurrence sur n. Elle est en effet clairement vraie pour n = 2. Si elle est vraie pour tout b < n alors elle est aussi vraie pour n vu que, si n n’est pas premier, il existe b et c tels que n = bc avec b < n, c < n. Par l’hypothèse de récurrence, il existe alors un premier qui divise b (et donc aussi n). Arithmétique dans Z Le résultat qu’on vient de prouver implique en particulier : Théorème 8 (Théorème d’Euclide) Il existe une infinité de nombres premiers. Démonstration : Supposons qu’il n’existe qu’un nombre fini p1 , . . . , pn de premiers. Considérons le nombre M = p1 . . . pn + 1. Alors M n’est pas premier (il est plus grand que chacun des pi ) et donc il existe pi qui divise M. Mais alors pi divise aussi 1 = M − p1 . . . pn ce qui n’est pas possible car pi > 1. Il doit donc exister un nombre premier qui n’est pas dans la liste p1 , . . . , pn . Arithmétique dans Z On a démontré que tout entier est divisible par un nombre premier. On a en fait un résultat beaucoup plus fort : Théorème 9 (Théorème fondamental de l’arithmétique) Soit n > 2 un nombre entier. Alors n s’écrit comme un produit de nombres premiers. De plus, cette décomposition en produit de premiers est unique à l’ordre des facteurs près. Arithmétique dans Z Exemple 10 La décomposition en facteurs premiers du nombre 42250 est 42250 = 2.53 .132 On peut éventuellement permuter l’ordre des nombres premiers qui apparaissent dans le produit, mais hormis ceci, la décomposition est unique par le théorème fondamental. Arithmétique dans Z L’existence de la décomposition est facile à prouver par récurrence. Elle est clairement vraie pour n = 2. Pour n > 2, soit n est lui même premier (auquel cas il n’y a rien à prouver) soit n est divisible par un premier p et donc n = p.c avec c < n. Comme c est décomposable en produit de premiers par l’hypothèse de récurrence, n aussi. Arithmétique dans Z L’unicité est un peu plus difficile, elle pourra se faire au moyen de résultats sur le PGCD dont nous parlerons bientôt. Arithmétique dans Z Etant donné un nombrer entier positif quelconque n, peut-on trouver un algorithme efficace pour déterminer la décomposition en facteurs premiers de n ? Pour petit un nombre (comme n = 1231 par exemple), la réponse semble immédiate : on essaye de trouver tous les diviseurs à la main. Arithmétique dans Z Pour des nombres assez grands (plusieurs centaines de chiffres), on ne connaît aucun algorithme de factorisation qui soit efficace dans tous les cas. C’est ce fait qui est à la base du fonctionnement de systèmes comme le RSA. PGCD La notion de plus grand commun diviseur (PGCD) est fondamentale dans beaucoup de questions d’arithmétique. Soient a et b deux nombres entiers tels que a 6= 0 ou b 6= 0. Le PGCD de a et de b est simplement le plus grand des diviseurs communs à a et à b. Comme l’ensemble des diviseurs communs à a et b est non vide (il y a au moins le nombre 1) et fini, il y en a forcément un plus grand que tous les autres, c’est le PGCD. PGCD Remarque : Si a = b = 0 alors n’importe quel entier est un diviseur commun à a et b. On ne peut donc à priori pas définir de PGCD. Mais on pose par convention que PGCD(0,0) = 0. PGCD Exemple 11 Soient a = 12 et b = 8. Alors les diviseurs communs à a et b sont {−4, −2, −1, 1, 2, 4} de sorte que PGCD(12,8) = 4. Remarque : si c divise a et c < 0 alors |c| = −c divise aussi a. Donc pour calculer le PGCD, on peut se limiter à regarder les diviseurs positifs de a et b. De plus, PGCD(a,b) > 0 avec égalité si et seulement si a = b = 0. PGCD En fait, PGCD(a,b) = PGCD(|a|,|b|) de sorte qu’on peut toujours supposer que a et b sont positifs lorsqu’on calcule un PGCD (quitte à remplacer a par −a et/ou b par −b). L’algorithme d’Euclide Il existe un algorithme efficace pour calculer le PGCD des deux entiers a > 0 et b > 0. Cet algorithme est basé sur la division euclidienne et est appelé algoritme d’euclide. Il utilise le résultat suivant : Si r désigne le reste de la division de a par b, alors PGCD(a,b) = PGCD(b, r ). L’algorithme d’Euclide Si r désigne le reste de la division de a par b, alors PGCD(a,b) = PGCD(b, r ). Ceci est évident car a = bq + r donc si c divise a, b, alors c divise aussi r = a − bq. De même si c divise b, r alors c divise aussi a = bq + r . Donc les ensembles de diviseurs communs à a, b et à b, r sont identiques, et il suit que PGCD(a,b) = PGCD(b, r ). L’algorithme d’Euclide Du coup, l’algorithme fonctionne ainsi pour calculer PGCD(a,b) avec a > b > 0 : 1 Calculer le reste r de la division de a par b, 2 Si r = 0, alors PGCD(a,b) = PGCD(b, 0) = b, 3 Sinon, PGCD(a,b) = PGCD(b, r ) et on retourne au point 1 pour calculer PGCD(b, r ). Comme à chaque étape, PGCD(a, b) est remplacé par PGCD(b, r ) avec 0 6 r < b, on est sûr de tomber sur r = 0 à un moment donné. Donc l’algorithme terminera ! L’algorithme d’Euclide Exemple 12 Soit a = 190 et b = 75. Alors 190 = 75.2 + 40 et 75 = 40.1 + 35 et 40 = 35.1 + 5 et 35 = 5.7 + 0 Donc PGCD(190, 75) = 5, le dernier reste non nul dans la suite des divisions. L’algorithme d’Euclide Remarque : on peut déduire un résultat intéressant de l’algorithme d’Euclide. On remarque que lors de la première étape de l’algorithme, on remplace PGCD(a, b) par PGCD(b, a − bq). De façon plus générale, pour passer d’une étape à la suivante dans l’algorithme, on remplacera toujours le calcul de PGCD(u, v ) par le calcul de PGCD(v , u − qv ) pour un certain entier q. Ceci implique qu’à chaque étape, les entiers u et v sont des combinaisons linéaires à coefficients entiers des entiers a et b de départ. L’algorithme d’euclide Donc : Théorème 13 (Identité de Bachet-Bézout) Si a, b ∈ Z, alors il existe des nombres entiers x et y tels que PGCD(a, b) = xa + yb. Il est en fait possible de modifier un peu l’algorithme d’Euclide de façon à ce que, en plus de calculer le PGCD, on détermine les entiers x et y . C’est ce qu’on appelle l’algorithme d’Euclide étendu (on ne rentre pas dans les détails ici). PGCD On a aussi : Théorème 14 Deux entiers a, b ∈ Z ont un PGCD égal à 1 si et seulement si il existe x, y ∈ Z tels que ax + by = 1. Si PGCD(a, b) = 1, le résultat suit du théorème précédent. Inversément si deux tels entiers x, y existent et si d | a, d | b alors d | 1 ce qui implique d ∈ {−1, 1} donc PGCD(a,b) = 1. PGCD Si PGCD(a, b) = 1, on dit que les entiers a et b sont premiers entre eux. Ceci n’implique évidemment pas que a et b sont premiers. Exemple 15 Les entiers 6 et 25 sont premiers entre eux. Le lemme d’Euclide Proposition 1 (Lemme d’Euclide) Si p est premier et p | (ab) alors p | a ou p | b. Si p ne divise pas a alors p et a sont premiers entre eux vu que p n’admet que 1 et p comme diviseurs positifs. Donc il existe x et y tels que ax + py = 1 c’est-à-dire abx + pby = b. Mais comme p | ab il existe c tel que ab = pc et donc p(cx + by ) = b ce qui montre que p divise b. Unicité dans le théorème fondamental Le lemme d’Euclide permet de démontrer l’unicité dans le théorème fondamental de l’arithmétique. On procède à nouveau par récurrence sur n, le cas n = 2 étant clair. Supposons n > 2 et soient n = p1 . . . ps = q1 . . . qt deux décompositions de n avec qi et pi des nombres premiers. On veut montrer que s = t et que les pi sont égaux aux qi . Unicité dans le théorème fondamental On voit donc que p1 divise q1 . . . qt = q1 (q2 . . . qt ). Par le lemme d’Euclide, soit p1 divise q1 (auquel cas p1 = q1 vu que p1 et q1 sont premiers) soit p1 divise q2 . . . qt . Si p1 = q1 on en déduit que p2 . . . ps = q2 . . . qt =: m et comme m < n, l’hypothèse de récurrence implique que s = t et que tous les pi , qi sont égaux. Sinon p1 divise q2 . . . qt = m et par l’hypothèse de récurrence à nouveau, p1 doit être égal à un des qi (on peut supposer i = 2 sans perte de généralité). En simplifiant p1 et q2 on obtient par l’hypothèse de récurrence que les décompositions p2 . . . ps = q1 q3 . . . qt sont égales dont s = t et les pi sont égaux aux qi . Ceci termine la preuve. Le théorème fondamental On a donc démontré l’existence et l’unicité de la décompositions en facteurs premiers d’un nombre entier ! On écrira souvent cette décomposition sous la forme αm n = p1α1 p2α2 . . . pm avec pi des nombres premiers distincts et αi des nombres entiers positifs. Les pi sont donc uniques (à l’ordre près). Le théorème fondamental Comme son nom l’indique, le théorème fondamental est fort utilisé dans les problèmes d’arithmétique sur les nombres entiers. Remarquons que si a et b sont entiers, on peut toujours écrire αm a = p1α1 . . . pm et βm b = p1β1 . . . pm On peut supposer que les nombres premiers qui interviennent dans la décomposition de a et b sont identiques quitte à poser αi = 0 si pi n’apparaît pas dans a et βi = 0 si pi n’apparaît pas dans b. Le théorème fondamental On remarque aussi que le nombre αm a = p1α1 . . . pm divise le nombre βm b = p1β1 . . . pm si et seulement si αi 6 βi pour tout i = 1, . . . , m. PGCD Voici une des implications du théorème fondamental sur le calcul du PGCD : min (α1 ,β1 ) PGCD(a, b) = p1 min (αm ,βm ) . . . pm . PGCD C’est évident car min (α1 ,β1 ) p1 min (αm ,βm ) . . . pm divise clairement à la fois a et b. De plus, si c est un diviseur commun à a et à b alors le coefficient γi de pi intervenant dans la décomposition de c est au plus αi et au plus βi . Donc min (α1 ,β1 ) p1 min (αm ,βm ) . . . pm est bien le plus grand diviseur commun à a et b ! Le théorème fondamental Exemple 16 On a 16793868 = 22 .31 .50 .72 .110 .134 .170 et 13090 = 21 .30 .51 .71 .111 .130 .17 et donc PGCD(16793868, 13090) = 21 .30 .50 .71 .110 .130 .170 = 14 Remarque : d’un point de vue algorithmique, il est beaucoup plus efficace d’appliquer l’algorithme d’Euclide pour calculer le PGCD que de de décomposer a et b en facteurs premiers et d’appliquer le résultat dont on vient de parler. Le système RSA Expliquons à présent la façon dont fonctionne le RSA. Un expéditeur (E) souhaite donc envoyer un message crypté à un destinataire (D). Ils procéderont en plusieurs étapes. Le système RSA Première étape : D choisit deux nombres premiers p et q. Il choisit de plus un nombre e tel que e est premier avec (p − 1)(q − 1). Deuxième étape : D communique n = pq et e à E. Peu importe qu’un utilisateur extérieur connaisse n et e, ces nombres ne seront utilisés que pour crypter et pas pour décrypter. Donc D ne doit prendre aucune précaution particulière en envoyant n et e à E. Le système RSA L’idée est que pour décrypter, on aura besoin de p et de q. Mais comme D est le seul à les connaître (il ne doit donc les communiquer à personne !) il sera le seul à pouvoir décrypter. Si un utilisateur extérieur veut décrypter le message, il devra factoriser le nombre n pour trouver p et q. Mais si on choisit p et q très grands (plus de 100 chiffres), n = pq sera très grand aussi et on ne connaît aucun algorithme efficace pour factoriser un si grand nombre ! Le système RSA Troisième étape : E code son message au moyen d’un élément M ∈ Zn (éventuellement de plusieurs tels éléments si nécessaire). Quatrième étape : E calcule M e dans l’anneau Zn (c’est-à-dire : il fait le calcule modulo n). L’élément M e est le message crypté, il l’envoie à D. Le système RSA Comment D fera-t-il pour décoder ? Il utilisera le théorème suivant : Théorème 17 Soit n = pq avec p et q premier et e premier avec (p − 1)(q − 1). Il existe alors d ∈ Z(p−1)(q−1) tel que ed = 1 dans l’anneau Z(p−1)(q−1) . Pour cet élément d et pour M ∈ Zn on a : (M e )d = M dans Zn . Le système RSA Et donc : Cinquième étape : D calcule un élément d (comme dans le théorème précédent) ainsi que (M e )d dans l’anneau Zn ce qui lui permet de retrouver M. Le système RSA Remarque : D peut facilement trouver le nombre d nécessaire au décryptage. En effet, comme e et (p − 1)(q − 1) sont premiers entre eux, l’identité de Bachet-Bézout nous dit qu’il existe des entiers x et y tels que xe + y (p − 1)(q − 1) = 1. Si on réduit cette égalité modulo (p − 1)(q − 1) on obtient bien xe = 1 dans Z(p−1)(q−1) et D peut donc choisir d = x modulo (p − 1)(q − 1). Le nombre x peut facilement être calculé par l’algorithme d’Euclide étendu. Le système RSA Autre remarque : pour que le système RSA fonctionne en pratique, il faut être capable de : 1 Déterminer rapidement de grands (plusieurs centaines de chiffres) nombres premiers p et q, 2 Calculer rapidement les puissances M e , (M e )d ainsi que le produit n = pq. Le système RSA Pour le calcul de puissances et de produit, on dispose d’algorithmes d’exponentiation rapide et de multiplication rapide (on ne les décrira pas ici). Le fait de devoir calculer des puissances et des produits n’est donc pas un obstacle à l’application du RSA. Le système RSA Générer des nombres premiers de grande taille est un problème beaucoup plus délicat. En pratique, on peut générer un nombre donné au hasard et puis tester si le nombre est bien premier en utilisant un test de primalité. On ne donnera pas plus de détails ici. Le système RSA Est-on bien sûr que le système RSA est fiable ? D’après Jean-Paul Delahaye : "La confiance dans la sécurité du RSA n’est pas due à la démonstration théorique que ce système est sûr, car une telle démonstration n’existe pas. La confiance affichée provient de l’échec répété, depuis plus de 20 ans, de toutes les tentatives pour casser ce système ; ces tentatives n’ont conduit qu’à la formulation de quelques précautions pour le choix des paramètres p, q, e, d ." Jean-Paul Delahaye, Merveilleux nombres premiers, Belin-Pour la science, 2000. Arithmétique modulaire Les applications (notamment le RSA) motivent l’étude de l’anneau (Zm , +, .) des entiers modulo m. C’est le sujet de l’arithmétique modulaire. En particulier, on a vu que dans l’application du RSA, calculer l’élément d revient à calculer un inverse multiplicatif de l’élément e dans Z(p−1)(q−1) . Arithmétique modulaire Théorème 18 L’élément n ∈ Zm est inversible pour la multiplication si et seulement si PGCD(n,m) = 1. C’est évident car on a vu que PGCD(n,m) = 1 si et seulement si il existe des entiers x et y tels que nx + my = 1 et une telle égalité est satisfaite si et seulement si nx = 1 dans Zm (et x sera alors l’inverse de n dans Zm ). Arithmétique modulaire En particulier, on obtient que : Théorème 19 L’anneau (Zm , +, .) forme un corps si et seulement si m est premier. Cela découle du théorème précédent vu que l’anneau sera un corps si et seulement si tout élément non nul de Zm est inversible pour la multiplication, c’est-à-dire si et seulement si PGCD(n,m) = 1 pour tout n = 1, . . . , m − 1 (et ceci est bien équivalent à dire que m est premier). Arithmétique modulaire On note φ(m) le nombre d’entiers compris entre 1 et m − 1 qui sont premiers avec m. La fonction φ est appelée l’indicatrice d’Euler. La fonction φ fournit donc le nombre d’éléments de Zm qui sont inversibles. Arithmétique modulaire Exemple 20 On a φ(11) = 10 vu que 11 est premier (tous les nombres 1, . . . , 10 sont premiers avec 11). On a φ(15) = 8 vu que 15 = 3.5 et les nombres 3, 6, 9, 12, 5, 10 ne sont pas premiers avec 15. Arithmétique modulaire La fonction φ est couramment utilisée en arithmétique, on peut notamment montrer que : Théorème 21 Si la décomposition de m en facteurs premiers est m = p1α1 . . . pkαk alors 1 1 φ(m) = m 1 − ... 1 − . p1 pk Résumé des points importants du chapitre 1 La définition d’un anneau, 2 Les nombres premiers et le théorème fondamental de l’arithmétique, 3 Le PGCD de deux nombres entiers, l’algorithme d’Euclide, l’identité de Bachet-Bézout, 4 Le fonctionnement du RSA, Résumé des points importants du chapitre 5 La caractérisation des éléments inversibles de l’anneau (Zm , +, .), 6 La fonction φ d’Euler.