Skip to content

Exercice 2 : Petit théorème de Fermat et applications cryptographiques

🌐 Énoncé du problème / Cadre d’étude

Section titled “🌐 Énoncé du problème / Cadre d’étude”

L’arithmétique modulaire est l’un des piliers fondamentaux de la cryptographie moderne, notamment pour la sécurisation des échanges sur Internet via le système de chiffrement RSA. Le présent problème propose d’étudier le Petit théorème de Fermat, de le démontrer par une approche combinatoire, puis d’explorer son application dans la mise en œuvre et l’analyse d’un protocole de chiffrement asymétrique.

On note Z\mathbb{Z} l’anneau des entiers relatifs, et pour tout entier n≥1n \ge 1, Z/nZ\mathbb{Z}/n\mathbb{Z} l’anneau des classes d’entiers modulo nn. On note (Z/nZ)×(\mathbb{Z}/n\mathbb{Z})^\times le groupe des éléments inversibles de cet anneau.


❓ Questions progressives (incluant une analyse critique du modèle)

Section titled “❓ Questions progressives (incluant une analyse critique du modèle)”
  1. Préliminaires sur les coefficients binomiaux et les anneaux quotients

    • a) Soit pp un nombre premier. Démontrer que pour tout entier kk tel que 1≤k≤p−11 \le k \le p-1, le coefficient binomial (pk)\binom{p}{k} est divisible par pp.
    • b) En déduire, en considérant l’expansion de (a+b)p(a+b)^p dans un anneau commutatif de caractéristique pp, ou par récurrence, que pour tout entier a∈Za \in \mathbb{Z} et tout nombre premier pp, on a : ap≡a(modp)a^p \equiv a \pmod p
  2. Démonstration combinatoire alternative

    • a) Soit pp un nombre premier et AA un alphabet muni de aa éléments (a≥1a \ge 1). On considère l’ensemble E\mathcal{E} des mots de longueur pp formés avec les lettres de AA. Quel est le cardinal de E\mathcal{E} ?
    • b) On définit une action du groupe cyclique Z/pZ\mathbb{Z}/p\mathbb{Z} sur E\mathcal{E} par décalage cyclique (rotation vers la droite). Décrire les orbites de cette action. En déduire que pp divise ap−aa^p - a. Retrouver ainsi le Petit théorème de Fermat sous la forme : si pgcd(a,p)=1\text{pgcd}(a,p) = 1, alors ap−1≡1(modp)a^{p-1} \equiv 1 \pmod p.
  3. Application au chiffrement RSA et analyse critique

    • a) Soient pp et qq deux nombres premiers distincts, et n=pqn = pq. Soit ee un entier premier avec φ(n)=(p−1)(q−1)\varphi(n) = (p-1)(q-1). Justifier l’existence d’un entier dd tel que ed≡1(modφ(n))ed \equiv 1 \pmod{\varphi(n)}.
    • b) Soit M∈Z/nZM \in \mathbb{Z}/n\mathbb{Z} un message (représenté par un entier). On définit le chiffré C≡Me(modn)C \equiv M^e \pmod n. Démontrer que Cd≡M(modn)C^d \equiv M \pmod n.
    • c) Analyse critique du modèle : Supposons qu’un utilisateur choisisse un module nn produit de deux nombres premiers trop proches l’un de l’autre (par exemple, pp et qq de même taille en bits). Expliquer brièvement comment un attaquant peut factoriser nn efficacement (méthode de factorisation de Fermat) et ainsi compromettre la sécurité du système.

💡 Pistes & Indications méthodologiques

Section titled “💡 Pistes & Indications méthodologiques”
  • Question 1.a) Exprimez le coefficient binomial à l’aide de factorielles et utilisez le lemme de Gauss sachant que pp est premier.
  • Question 1.b) Pensez à la formule du binôme de Newton dans Z/pZ\mathbb{Z}/p\mathbb{Z} où la caractéristique est pp, ou raisonnez par récurrence sur a≥0a \ge 0 en étendant ensuite aux entiers négatifs.
  • Question 2.b) Utilisez la formule des classes d’orbites. Les orbites ont pour cardinal soit 11 (mots constants), soit pp.
  • Question 3.b) Écrivez ed=1+k(p−1)(q−1)ed = 1 + k(p-1)(q-1) pour un certain entier kk. Appliquez ensuite le Petit théorème de Fermat modulo pp et modulo qq, puis utilisez le théorème des restes chinois (ou l’argument de divisibilité par pqpq).
  • Question 3.c) Posez n=x2−y2=(x−y)(x+y)n = x^2 - y^2 = (x-y)(x+y) si pp et qq sont proches, ce qui permet de tester rapidement des carrés parfaits.

1. Préliminaires sur les coefficients binomiaux et les anneaux quotients

Section titled “1. Préliminaires sur les coefficients binomiaux et les anneaux quotients”
  • a) Par définition, pour 1≤k≤p−11 \le k \le p-1 : (pk)=p!k!(p−k)!  ⟹  k!(pk)=p(p−1)!k!(p−k)!×k!(ce qui donne p(p−1k−1)=k(pk))\binom{p}{k} = \frac{p!}{k!(p-k)!} \implies k!\binom{p}{k} = p \frac{(p-1)!}{k!(p-k)!} \times k! \quad (\text{ce qui donne } p\binom{p-1}{k-1} = k\binom{p}{k}) Plus rigoureusement, on a la relation pdivise(pk)k!p \text{divise} \binom{p}{k} k!. Comme pp est premier et que k<pk < p, pp ne divise aucun des facteurs de k!k! (car tous sont strictement inférieurs à pp). Par le lemme de Gauss, pp divise le coefficient binomial (pk)\binom{p}{k}.

  • b) Soit a∈Na \in \mathbb{N} (le cas des entiers négatifs se traite par parité ou congruence). Démontrons par récurrence sur aa la proposition P(a):ap≡a(modp)\mathcal{P}(a) : a^p \equiv a \pmod p.

    • Initialisation : Pour a=0a = 0, 0p≡0(modp)0^p \equiv 0 \pmod p, c’est immédiat.
    • Hérédité : Supposons P(a)\mathcal{P}(a) vraie pour un certain a≥0a \ge 0. D’après la formule du binôme de Newton : (a+1)p=∑k=0p(pk)ak=ap+1+∑k=1p−1(pk)ak(a+1)^p = \sum_{k=0}^{p} \binom{p}{k} a^k = a^p + 1 + \sum_{k=1}^{p-1} \binom{p}{k} a^k Modulo pp, tous les termes intermédiaires s’annulent puisque pp divise (pk)\binom{p}{k} pour 1≤k≤p−11 \le k \le p-1. Ainsi : (a+1)p≡ap+1(modp)(a+1)^p \equiv a^p + 1 \pmod p Par hypothèse de récurrence, ap≡a(modp)a^p \equiv a \pmod p, donc : (mod p)(a+1)p≡a+1_\text{(mod } p\text{)} \quad (a+1)^p \equiv a + 1 La propriété est donc démontrée pour tout a∈Na \in \mathbb{N}.

2. Démonstration combinatoire alternative

Section titled “2. Démonstration combinatoire alternative”
  • a) L’alphabet AA contient aa éléments. Un mot de longueur pp est un p-uplet d’éléments de AA. Le nombre de tels mots est donc : ∣E∣=ap|\mathcal{E}| = a^p

  • b) Le groupe cyclique Z/pZ\mathbb{Z}/p\mathbb{Z} agit sur E\mathcal{E} par décalage circulaire. D’après la formule des classes (orbite-stabilisateur), le cardinal de E\mathcal{E} est la somme des cardinalités des orbites. Pour chaque mot, la taille de son orbite divise l’ordre du groupe, c’est-à-dire pp. Comme pp est premier, la taille de chaque orbite est soit 11, soit pp.

    • Les orbites de taille 11 correspondent aux mots invariants par toute rotation, c’est-à-dire les mots constitués d’une seule lettre répétée pp fois. Il y a exactement aa tels mots (un par lettre de l’alphabet).
    • Les autres orbites ont toutes une taille égale à pp.

    Par conséquent, si on note kk le nombre d’orbites de taille pp, on obtient l’équation des classes : ap=a+kpa^p = a + kp ce qui montre immédiatement que : ap≡a(modp)a^p \equiv a \pmod p Si de plus pgcd(a,p)=1\text{pgcd}(a, p) = 1, alors aa est inversible modulo pp. En divisant l’égalité ap≡a(modp)a^p \equiv a \pmod p par aa dans Z/pZ\mathbb{Z}/p\mathbb{Z}, on obtient : ap−1≡1(modp)a^{p-1} \equiv 1 \pmod p C’est le Petit théorème de Fermat.


3. Application au chiffrement RSA et analyse critique

Section titled “3. Application au chiffrement RSA et analyse critique”
  • a) On a pgcd(e,φ(n))=1\text{pgcd}(e, \varphi(n)) = 1. D’après le théorème de Bézout, il existe des entiers dd et kk tels que : ed+kφ(n)=1ed + k\varphi(n) = 1 Par conséquent, ed≡1(modφ(n))ed \equiv 1 \pmod{\varphi(n)}, ce qui assure l’existence de l’exposant de déchiffrement dd (souvent calculé via l’algorithme d’Euclide étendu).

  • b) Soit C≡Me(modn)C \equiv M^e \pmod n. On cherche à montrer que C^d \equiv M^e^d \equiv M \pmod n. On sait que ed=1+t(p−1)(q−1)ed = 1 + t(p-1)(q-1) pour un certain t∈Zt \in \mathbb{Z}. Regardons modulo pp : Si pgcd(M,p)=1\text{pgcd}(M, p) = 1, alors par le Petit théorème de Fermat : Mp−1≡1(modp)M^{p-1} \equiv 1 \pmod p Dès lors : Med=M1+t(p−1)(q−1)=M×(Mp−1)t(q−1)≡M×1t(q−1)≡M(modp)M^{ed} = M^{1 + t(p-1)(q-1)} = M \times (M^{p-1})^{t(q-1)} \equiv M \times 1^{t(q-1)} \equiv M \pmod p Si pgcd(M,p)≠0\text{pgcd}(M, p) \neq 0, comme pp est premier, pp divise MM, donc M≡0(modp)M \equiv 0 \pmod p, ce qui implique immédiatement Med≡0≡M(modp)M^{ed} \equiv 0 \equiv M \pmod p. Ainsi, pour tout entier MM, Med≡M(modp)M^{ed} \equiv M \pmod p. De même, par symétrie, Med≡M(modq)M^{ed} \equiv M \pmod q. Puisque pp et qq sont des nombres premiers distincts et que n=pqn = pq, pp et qq divisent Med−MM^{ed} - M. Leur produit nn divise donc également Med−MM^{ed} - M, c’est-à-dire : Med≡M(modn)M^{ed} \equiv M \pmod n Le message initial est parfaitement restitué.

  • c) Analyse critique du modèle (Méthode de Fermat) : Si pp et qq sont proches, posons u=p+q2u = \frac{p+q}{2} et v=p−q2v = \frac{p-q}{2}. Alors n=pq=u2−v2n = pq = u^2 - v^2, soit : u2−n=v2u^2 - n = v^2 Puisque pp et qq sont proches, vv est petit, ce qui signifie que u2u^2 est un entier très légèrement supérieur à nn. Un attaquant peut simplement tester les valeurs successives de x=⌈n⌉,⌈n⌉+1,…x = \lceil \sqrt{n} \rceil, \lceil \sqrt{n} \rceil + 1, \dots jusqu’à ce que x2−nx^2 - n soit un carré parfait v2v^2. Il en déduit immédiatement u=xu = x et v=x2−nv = \sqrt{x^2 - n}, ce qui lui donne les facteurs premiers p=u+vp = u + v et q=u−vq = u - v, brisant ainsi la sécurité du système RSA. C’est pourquoi, dans la pratique, pp et qq doivent être choisis rigoureusement de même taille en bits mais suffisamment éloignés pour contrer cette attaque.