Congruences

Bonsoir
Après quelques années dans le monde du travail, j'ai décidé de reprendre mes cours de mathématiques.
Je suis bloquée sur un exercice niveau TS.
Il s'agit d'un exercice de cryptographie, système RSA.

À un moment, je dois calculer $d$ tel que : $5d \equiv 1 \pmod {336}$, avec $d<336$

J'ai posé $5d-1=336*k$
Et par tâtonnement, j'ai trouvé pour $k=4$, $d=269$

Est-ce correct ?
Comment calculer $d$ de manière plus "propre" ?
Merci ! :-)

Réponses

  • Bonjour,

    Tu cherches $5d=1+336k$ avec $d$ et $k$ des entiers relatifs (tu n'as pas indiqué si tu te limites à des entiers naturels).
    On fait apparaître un $5$ dans $336$ par $336=5 \times 67+1$ et alors $5d=1+5 \times 67d$ et donc $5(d-67k)=k+1$ : on a donc $k+1$ multiple de $5$ que l'on écrit $k+1=5u$ ou encore $k=5u-1$ avec $u$ entier relatif.
    On reporte $5d=1+336 (5u-1) = -335+336 \times 5 u$ et donc $d=-67+336u.$

    On a donc nécessairement $k=5u-1, d=336u-67, u \in \Z.$
    On montre la réciproque.
    On a donc démontré une équivalence.
    Ta solution est obtenue avec $u=1.$

    Avec la condition $d<336$, il faut imposer $u \leq 1$, mais $u=0, u=-1, u=-2$... sont aussi des solutions...
  • Le théorème qui est derrière tout ça est le théorème de Bézout, que tu dois connaître.

    Plus généralement, soient $a,b,n \in \mathbb{N}^*$ et l'on suppose $\textrm{pgcd}(a,n) = 1$. Alors l'équation $ax \equiv b \pmod n$ a une solution, unique si l'on se restreint à $\{0,\dotsc,n-1\}$, donnée par $x \equiv ub \pmod n$, où $u$ est un coefficient de Bézout de $a$ dans l'égalité $\textrm{pgcd}(a,n) = 1$.

    Exemple. $a=5$, $b=1$ et $n=336$. On peut prendre par exemple $u=-67$ et l'on obtient $x=269$.

    Démonstration. Puisque $\textrm{pgcd}(a,n) = 1$, il existe $u,v \in \mathbb{Z}$ tels que $au+nv = 1$, et donc $aub + nvb=b$. Soit $x$ une solution. Puisque $ax \equiv b \pmod n$, il existe $k \in \mathbb{Z}$ tel que $ax=b+nk$. Ainsi
    $$aub + nvb = ax - nk \Longleftrightarrow a \left( x-ub \right) = n \left( k + bv \right)$$
    d'où l'on déduit que $n$ divise $a \left( x-ub \right)$ et comme $\textrm{pgcd}(a,n) = 1$, le théorème de Gauss implique que $n \mid x-ub$, ou encore $x \equiv ub \pmod n$. Réciproquement, on vérifie que les nombres $x \equiv ub \pmod n$ sont solutions, ce qui est facile car, de l'égalité $au+nv = 1$, il vient $au \equiv 1 \pmod n$, et donc $ax \equiv aub \equiv b \pmod n$.
  • Bonjour Lilou et bienvenue.

    Puisque tu es plongée dans RSA, tu dois connaître le théorème d'Euler-Fermat.
    Tu as \( \phi(336) = 96 \).
    De ce fait \( 5^{95} \) convient.

    Un petit programme \( \tt Python \) pour s'en convaincre.
    p=1
    for k in range(95):
        p=(p*5)%336
    print(p)
    print(p*5%336)
    

    amicalement,

    e.v.
    Personne n'a raison contre un enfant qui pleure.


  • Si $a>0$ est premier avec $p>0$ et si on veut résoudre l'équation $ax\equiv 1\mod{p}$.

    Cela revient à trouver un couple de nombres entiers solution de l'équation:

    $ax+py=1$

    Et l'algorithme d'Euclide étendu permet de trouver un couple de solution $(x,y)$.

    (algorithme au programme de la classe de terminale S sauf erreur de ma part)
  • Merci pour vos réponses ! J'ai encore du boulot avant de maîtriser toutes ces notions !
  • En suivant ce que je t'ai dit plus haut, il n'est pas difficile d'élaborer un petit algorithme, sur TI-82 ou Casio 35 +, qui lit trois entiers $a,b,n$ avec $a$ et $n$ premiers entre eux et qui affiche une solution $x$ de la congruence $ax \equiv b \pmod n$.
Connectez-vous ou Inscrivez-vous pour répondre.