Ce petit quiz t’aide à partir avec les bons outils. Une base mal comprise peut rendre la suite plus difficile, même si tu travailles sérieusement.
Ce n’est pas une note : en cas d’erreur, tu sauras précisément quoi revoir avant d’avancer.
Tu peux revoir les explications ci-dessus, puis ouvrir le chapitre à ton rythme.
Avant de commencer5 questions pour vérifier tes bases
Pourquoi ce chapitre ?
Le problème fondamental : résoudre dans les entiers
Pour partager 23 objets en lots de 5, le quotient réel 4,6 n'est pas le résultat attendu : tu obtiens 4 lots et 3 objets restants. En arithmétique, la contrainte entière change la question. Nous allons formaliser cette idée de reste, puis l'utiliser pour remplacer certains calculs immenses par quelques possibilités.
Prérequis. Entiers relatifs, multiples, distributivité, puissances, division d'entiers positifs, preuve par contraposée ou par l'absurde. On note \(\N=\{0,1,2,\ldots\}\) et \(\Z\) l'ensemble des entiers relatifs.
Le cours suit le socle officiel. Le problème de chiffrement affine est une application guidée ; la méthode générale pour inverser un entier modulo \(n\) sera démontrée dans la fiche 5.
L'idée avant la formule
Plusieurs entiers, un même reste
Les entiers 3, 10 et 17 ont le même reste modulo 7. Ils restent différents comme entiers, mais se comportent de la même manière si l'on ne regarde que le jour de la semaine. Leur différence est un multiple de 7 : c'est cette propriété exacte que la notation de congruence retiendra.
Un reste positif même en reculant
Reculer de 2 jours produit le même décalage qu'avancer de 5 jours. L'écriture \(-2=7(-1)+5\) possède un reste entre 0 et 6. Le quotient \(-1\) compte un tour en arrière ; le reste 5 donne une position autorisée. Cette lecture évite de confondre le signe du nombre et celui du reste.
Détecter une impossibilité avant de chercher
Un carré entier est congru à 0 ou à 1 modulo 4. Une somme de deux carrés ne peut donc être congrue à 3. On pourra ainsi exclure une équation entière sans essayer tous les couples. Attention au sens logique : franchir un test modulaire ne garantit pas qu'une solution entière existe.
Le cours formel
Divisibilité dans les entiers relatifs
Par exemple \(-3\mid12\) car \(12=(-3)(-4)\). Tout entier divise 0 car \(0=a\times0\). L'égalité \(0\mid b\) n'est vraie que pour \(b=0\). Pour un entier non nul \(b\), ses diviseurs entiers viennent par paires opposées ; on précise « positifs » si l'on veut seulement ceux de \(\N^*\).
Division euclidienne : existence et unicité
Congruences : oublier le quotient, garder le reste
Une congruence ne signifie pas une égalité : \(17\equiv2\pmod5\) mais \(17\ne2\). Elle dépend du module : \(17\not\equiv2\pmod4\). Pour \(n=1\), tous les entiers sont congrus.
Chaque entier se place dans l'une des cinq classes de restes. Après 4, ajouter 1 ramène à 0 ; cela ne veut pas dire que les entiers 4 et 5 sont égaux.
Calculer avec les congruences
Puissances et raisonnements par restes
Pour trouver \(a^N\pmod n\), calcule quelques puissances réduites. Si \(a^t\equiv1\pmod n\), écris \(N=tq+r\) : \(a^N\equiv a^r\). Il faut avoir établi le cycle avant de l'utiliser.
Démontrer les tests de divisibilité
Un entier naturel d'écriture décimale \(a_ma_{m-1}\cdots a_0\) vaut \(N=\sum_{k=0}^m a_k10^k\), où chaque chiffre est entre 0 et 9.
Pour 2, 5 ou 10, écrivons \(N=10q+a_0\). Le module divise \(10q\), donc \(N\equiv a_0\) : seul le chiffre des unités compte. Pour 4 ou 25, écrivons \(N=100q+(10a_1+a_0)\). Comme 100 est multiple du module, le premier terme a reste zéro ; on teste donc l'entier formé par les deux derniers chiffres. Pour 8 ou 125, \(1000=8\times125\) est multiple des deux modules : écrire \(N=1000q+r\), avec \(r\) formé des trois derniers chiffres, prouve de même \(N\equiv r\).
Algorithmes et précautions de programmation
Pour un diviseur positif, Python fournit quotient et reste via // et %. Il s'agit de la division avec quotient arrondi vers le bas, ce qui respecte la division euclidienne aussi pour un dividende négatif.
def division(a, b):
if b <= 0:
raise ValueError("b doit etre positif")
q, r = a // b, a % b
return q, r
def puissance_mod(a, n, m):
if n < 0 or m <= 0:
raise ValueError("n >= 0 et m > 0 requis")
resultat = 1 % m
for _ in range(n):
resultat = (resultat * a) % m
return resultat
Avant la boucle. Aucun facteur \(a\) n'a encore été multiplié. La variable contient le reste de 1 modulo \(m\), donc elle est congrue à \(a^0=1\) et appartient à \(\{0,\ldots,m-1\}\). Cela reste vrai pour \(m=1\), où le seul reste est 0.
Pendant un tour. Supposons qu'après \(k\) tours, la variable soit congrue à \(a^k\). La multiplier par \(a\) donne un nombre congru à \(a^{k+1}\). L'opération % m remplace ce nombre par son reste : elle conserve la congruence et remet la valeur entre 0 et \(m-1\). La propriété se transmet donc du rang \(k\) au rang \(k+1\).
À la fin. La boucle a effectué exactement \(n\) tours, donc la variable est congrue à \(a^n\) et dans l'intervalle des restes. L'unicité de la division euclidienne prouve qu'elle contient le reste recherché. Si \(n=0\), aucun tour n'est exécuté et la valeur initiale convient déjà. Cette initialisation et cette transmission constituent une preuve par récurrence, appelée invariant de boucle. La fiche 6 réduira le nombre de multiplications pour les grands exposants.
Boîte à outils : chercher le bon module
Une équation impossible modulo 3
Un chiffre inconnu dans une écriture décimale
La somme des chiffres de \(4a32\) vaut \(4+a+3+2=a+9\). Puisque \(a\) est un chiffre, \(0\le a\le9\), donc \(9\le a+9\le18\). Les seuls multiples de 9 dans cet intervalle sont 9 et 18. Résoudre \(a+9=9\) donne \(a=0\) ; résoudre \(a+9=18\) donne \(a=9\). On obtient donc exactement 4032 et 4932. Les contrôles \(9\times448=4032\) et \(9\times548=4932\) confirment les deux solutions.
Si l'on ajoute la divisibilité par 11, la somme alternée depuis les unités vaut \(2-3+a-4=a-5\). Parmi les chiffres autorisés, seul a=5 satisferait ce second test. Aucun chiffre ne satisfait donc simultanément les deux tests. Le domaine des chiffres, de 0 à 9, est une donnée essentielle du problème.
Un cycle n'est pas toujours immédiatement inversible
Passer d'une congruence à tous les entiers
L'écriture \(x\equiv4\pmod7\) ne signifie pas seulement x=4. Elle équivaut à \(x=4+7k\) pour un entier k, positif, nul ou négatif. Si une contrainte supplémentaire impose \(0\le x\le30\), alors \(0\le4+7k\le30\), donc k=0,1,2,3 ; les valeurs sont 4,11,18,25. Les contraintes d'intervalle viennent après la résolution modulaire.
Exercices progressifs
Les exercices 1 à 5 consolident les bases, 6 à 10 relient les notions et 11 à 15 demandent davantage d'initiative. Cherche d'abord, puis utilise un indice si tu en as besoin.
Exercice 1 : Diviseurs signés ★☆☆
Liste les diviseurs entiers de 18. Justifie \(-6\mid18\) et décide si \(0\mid18\).
Exercice 2 : Division positive ★☆☆
Donne la division euclidienne de 173 par 12.
Exercice 3 : Division négative ★☆☆
Divise euclidiennement \(-59\) par 7.
Exercice 4 : Lire une congruence ★☆☆
Décide si \(38\equiv3\pmod7\), \(-17\equiv3\pmod5\) et \(21\equiv1\pmod6\).
Exercice 5 : Réduction préalable ★☆☆
Calcule le reste de \(52\times79+100\) modulo 9.
Exercice 6 : Un facteur constant ★★☆
Montre que tout diviseur commun à \(5n+2\) et \(3n+1\) divise 1.
Exercice 7 : Puissance modulo 7 ★★☆
Détermine le reste de \(2^{100}\) modulo 7.
Exercice 8 : Dernier chiffre ★★☆
Détermine le dernier chiffre de \(7^{2026}\).
Exercice 9 : Tester un nombre ★★☆
Le nombre 123 456 est-il divisible par 3, 9, 4 et 11 ?
Exercice 10 : Inverse visible ★★☆
Résous \(5x\equiv3\pmod7\).
Exercice 11 : Une simplification fausse ★★★
Trouve toutes les solutions modulo 6 de \(2x\equiv2\pmod6\) et explique pourquoi \(x\equiv1\pmod6\) est incomplet.
Exercice 12 : Une impossibilité entière ★★★
Montre qu’aucun entier n ne vérifie \(n^2=2027\).
Exercice 13 : Divisibilité universelle ★★★
Démontre que \(n^3-n\) est divisible par 6 pour tout \(n\in\Z\).
Exercice 14 : Un test pour 7 ★★★
Écris \(N=10a+b\), où b est le chiffre des unités. Montre que N est divisible par 7 si et seulement si \(a-2b\) l’est. Applique à 203.
Exercice 15 : Lire un algorithme ★★★
Que renvoie puissance_mod(3, 5, 7) ? Justifie la fonction et explique le cas n=0.
Problème : Pour aller plus loin
Ce prolongement est accessible à partir du cours : les résultats supplémentaires sont guidés, et leur mémorisation n'est pas un préalable. Tu peux répartir la recherche sur plusieurs séances.
Construire et casser un chiffrement affine
On code les lettres A à Z par les entiers 0 à 25. Une lettre de code \(x\) est transformée en la lettre de code \(y\), reste de \(5x+8\) modulo 26. Espaces et accents sont retirés. Ce modèle sert à apprendre ; il ne prétend pas protéger un message réel. Durée indicative : 60 à 90 minutes.
Partie I : Chiffrer
Chiffre le mot MATHS en détaillant les cinq restes.
Montre que \(5\times21\equiv1\pmod{26}\).
Démontre que deux codes donnant la même image sont congrus modulo 26 ; explique pourquoi deux lettres différentes ne se confondent pas.
Partie II : Déchiffrer
À partir de \(y\equiv5x+8\), exprime \(x\) modulo 26 en fonction de \(y\).
Déchiffre IZ et vérifie en rechiffrant.
Que se passe-t-il si l'on remplace le coefficient 5 par 2 ? Donne deux lettres différentes ayant la même image.
Partie III : Retrouver une clé
On sait qu'un chiffrement \(y\equiv ax+b\pmod{26}\) envoie A sur I et B sur N.
Retrouve \(b\) puis \(a\) modulo 26.
Rédige deux fonctions Python de chiffrement et déchiffrement d'un code entier.
Explique pourquoi la connaissance de deux lettres consécutives et de leurs images suffit ici à retrouver la clé.
Pistes
M vaut 12, A vaut 0, T vaut 19, H vaut 7 et S vaut 18. Pour déchiffrer, soustrais 8 puis multiplie par 21. Pour la clé inconnue, A et B ont pour codes 0 et 1.
Corrigés détaillés
Corrigé 1
Corrigé 2
Corrigé 3
Corrigé 4
Corrigé 5
Corrigé 6
Corrigé 7
Corrigé 8
Corrigé 9
Corrigé 10
Corrigé 11
Corrigé 12
Corrigé 13
Corrigé 14
Corrigé 15
Corrigé du problème
Partie I : Calculer les cinq images
1. Les codes de M,A,T,H,S sont 12,0,19,7,18. La transformation ajoute 8 après multiplication par 5, puis garde le reste entre 0 et 25 :
donc \(5\times21\equiv1\pmod{26}\). Le nombre 21 est un inverse de 5 modulo 26.
3. Supposons deux images égales. Alors \(5x+8\equiv5x'+8\). Soustraire 8 puis \(5x'\) donne \(5(x-x')\equiv0\). Multiplier par 21 donne \(x-x'\equiv0\) puisque \(105\equiv1\). Les codes \(x,x'\) sont entre 0 et 25, donc leur différence est entre \(-25\) et 25. Le seul multiple de 26 dans cet intervalle est zéro : \(x=x'\). Deux lettres distinctes ne peuvent donc pas se confondre.
Partie II : Remonter chaque opération
1. À partir de \(y\equiv5x+8\), soustrayons 8 : \(y-8\equiv5x\). Multiplions ensuite par 21 : \(21(y-8)\equiv105x\equiv x\). Le déchiffrement consiste donc à prendre le reste de \(21(y-8)\) modulo 26. L'ordre compte : on retire d'abord le décalage, puis on annule la multiplication.
2. Pour I, \(y=8\), donc \(21(y-8)=0\) et le code initial est 0, soit A. Pour Z, \(y=25\), donc
Le code 19 est T. Ainsi IZ devient AT. Rechiffrons : A donne \(5\times0+8=8\), donc I ; T donne 103 de reste 25, donc Z. La vérification retrouve le message chiffré.
3. Avec le coefficient 2, le code 0 donne \(2\times0+8=8\) ; le code 13 donne
Les lettres A et N ont donc toutes deux pour image I. Une image ne permet plus de choisir un antécédent unique. Cette collision explique concrètement pourquoi on ne peut pas simplement diviser par 2 modulo 26.
Partie III : Retrouver puis programmer la clé
1. A a pour code 0 et I pour code 8. Donc \(a\times0+b\equiv8\), soit \(b\equiv8\). B a pour code 1 et N pour code 13 ; \(a+b\equiv13\). Soustraire la première congruence donne \(a\equiv13-8=5\). La clé est donc \(a=5,b=8\) modulo 26.
2. Les fonctions prennent un code entier et renvoient un code entre 0 et 25 :
L'opérateur % 26 impose le reste autorisé, même si \(y-8\) est négatif. Les parenthèses de la seconde fonction assurent que la soustraction a lieu avant la multiplication. Pour tout code \(x\), la composition donne modulo 26 \(21((5x+8)-8)=105x\equiv x\). Comme le résultat et \(x\) sont tous deux entre 0 et 25, ils sont égaux.
3. Pour deux codes consécutifs \(x\) et \(x+1\), les images sont congrues à \(ax+b\) et \(a(x+1)+b=ax+a+b\). Leur différence est donc congrue à \(a\). Une fois \(a\) connu, \(b\equiv y-ax\) le détermine aussi. Pour des codes non consécutifs, on obtiendrait un multiple de \(a\) ; l'annuler demanderait un inverse qui pourrait ne pas exister. L'argument repose donc bien sur la différence égale à 1.
Faire le point par une variante autonome
Essaie cette variante sans relire le corrigé précédent. Explique le choix de ta méthode, puis utilise les contrôles pour décider quelle notion retravailler.
Fiche-mémoire
\(a\mid b\) signifie \(b=ak\) pour un entier \(k\).
Division euclidienne : \(a=bq+r\) avec \(b>0\) et \(0\le r<b\).
\(a\equiv b\pmod n\) signifie \(n\mid(a-b)\), ou mêmes restes.
Addition, soustraction, produit et puissances positives conservent une congruence.
Une division exige une justification ; un inverse modulaire permet de simplifier.
Un test de divisibilité découle des puissances de 10 modulo le diviseur.
Autocontrôle. Mes quotients sont-ils entiers ? Le reste est-il dans le bon intervalle ? Ai-je conservé le module ? Ai-je prouvé la période des puissances ? Ai-je vérifié la réciproque d'une équivalence ?
Maîtrise du chapitre
Validation contrôlée
Réponds aux QCM, sélectionne les bonnes propositions ou remets les étapes dans l'ordre. Le site vérifie chaque réponse avant d'ouvrir la balise suivante.