CONCOURS GÉNÉRAL 2005 Exercice 4 – Logarithme discret et

CONCOURS GÉNÉRAL 2005
Exercice 4 – Logarithme discret et méthode d’Adleman
Corrigé détaillé
Samuel Rochetin
Vendredi 23 décembre 2016
Résumé
Ce problème traite du logarithme discret, utilisé en cryptologie. Les techniques d’arithmétique sont classiques et proches
du cours de spécialité mathématiques. Les deux dernières questions, indépendantes des autres, se démarquent clairement par
leur difficulté et pourraient constituer un exercice à elles seules. Enfin, signalons que les notations du sujet sont inutilement
compliquées.
I – Définition du logarithme discret
1. En procédant comme dans les exemples, nous trouvons que les racines primitives modulo 7 sont 3 et 5.
2. (a) Posons E:= gk(mod p), k ∈J0; p−2K. Tout d’abord, puisque gest une racine primitive modulo p, nous avons
l’inclusion E⊂gk(mod p), k ∈N=J1; p−1K. Pour montrer que cette inclusion est une égalité, il suffit de
montrer que l’ensemble Econtient p−1éléments. Supposons que ce n’est pas le cas. Alors il existe (i, j)∈J0; p−2K2
tel que i > j et gi=gj(mod p). Donc gjgi−j−1= 0 (mod p), c’est-à-dire pdivise gjgi−j−1. Or, 0< g < p
et pest premier donc pet gsont premiers entre eux, donc d’après le théorème de Gauss, pdivise gi−j−1, c’est-
à-dire gi−j= 1 (mod p), où i−j∈J1; p−2K. Soit k∈N. Posons b:= i−jet considérons la division euclidienne
de kpar b: il existe (q, r)∈N2tel que k=bq +ret 0≤r≤b−1. Donc gk=gbqgr=gr(mod p). Or,
0≤r≤b−1≤p−3donc l’ensemble gk(mod p), k ∈Ncontient au plus p−2éléments. Contradiction. Donc
gk(mod p), k ∈J0; p−2K=J1; p−1K.
(b) D’après la question précédente, les ensembles gk(mod p), k ∈J0; p−2Ket J1; p−1Kont le même cardinal fini
non nul, ils sont donc en bijection. Autrement dit, pour tout A∈J1; p−1K, il existe un unique entier a∈J0; p−2K
tel que A= (ga(mod p)).
(c) Supposons b≥a. Puisque b=a(mod (p−1)), il existe k∈Ntel que b−a=k(p−1). Donc gb−a=gp−1k
(mod p). Or, pest premier et ne divise pas g, donc d’après le petit théorème de Fermat, gp−1= 1 (mod p), donc
gb−a= 1 (mod p). En multipliant par ga, il vient gb(mod p)= (ga(mod p)). De même si a≥b.
3. (a) entrer p, g, A
`:= 0
k:= 0
tant que gk(mod p)6=A
k:= k+ 1
`:= k
fin tant que
afficher `
(b) Nous trouvons `(40) = 18.
II – Calcul du logarithme discret par la méthode d’Adleman
1. 2 = 5560 (mod 113)et 3 = 555(mod 113)donc 54 = 2 ×33= 5560 5553= 5575 (mod 113)) donc `(54) = 75.
2. Nous voulons montrer la réciproque de la question I 2. (c). Commençons par montrer que si (a, b)∈N2est tel que a≥b
et ga=gb(mod p), alors ga−b= 1 (mod p). Nous avons ga=gb(mod p)si et seulement si gbga−b−1= 0 (mod p),
c’est-à-dire si et seulement si pdivise gbga−b−1. Or, 0< g < p et pest premier donc pet gsont premiers entre eux,
donc d’après le théorème de Gauss, pdivise ga−b−1, c’est-à-dire ga−b= 1 (mod p). Ensuite, montrons que si x∈Nest tel
1
que gx= 1 (mod p), alors p−1divise x. Effectuons la division de xpar p−1: il existe (q, r)∈N2tel que x= (p−1)q+r
et 0≤r≤p−2. Donc 1 = gx=gp−1qgr=gr(mod p), en utilisant le petit théorème de Fermat comme à la question
2. (c). Or, d’après la question I 2. (a), {(gr(mod p)) , r ∈J0; p−2K}=J1; p−1Ket g0= 1 (mod p), donc r= 0. Donc
x= (p−1)q, donc p−1divise x. Enfin, précisons que p−1divise a−bsi et seulement si p−1divise b−a, ce qui
règle le cas où a≤b. Conclusion : si ga=gb(mod p), alors p−1divise a−b. Pour répondre à la question, il suffit
donc de montrer que pour tout i∈J1; nK, gai=gei,1`(p1)+···+ei,n`(pn)(mod p). Or, pour tout k∈J1; nK,1< pk< p, donc
par définition du logarithme discret, g`(pk)(mod p)=pk. Donc g`(pk)=pk(mod p), donc gei,k `(pk)=pei,k
k(mod p),
donc gei,1`(p1). . . gei,n`(pn)=pei,1
1. . . pei,n
n(mod p), donc nous avons bien gei,1`(p1)+···+ei,n`(pn)=gai(mod p). D’après
ce qui vient d’être vu, nous avons donc ai=ei,1`(p1) + · · · +ei,n`(pn) (mod (p−1)).
Remarque : nous avons obtenu une relation logarithmique classique de transformation des produits en sommes puisque
ai=`pei,1
1. . . pei,n
n=ei,1`(p1) + · · · +ei,n`(pn) (mod (p−1)). Par ailleurs, soulignons que l’indexation par iest inutile
dans tout le problème et ne fait que compliquer inutilement la notation.
3. (a) g1= 20 (mod 53) donc `(20) = 1. Or, 20 = 22×5, donc d’après la question précédente, 2`(2) + `(5) = 1 (mod 52).
De même, g3= 50 (mod 53) et 50 = 2 ×52donc `(2) + 2`(5) = 3 (mod 52). Nous obtenons donc le système :
(2`(2) + `(5) = 1 (mod 52)
`(2) + 2`(5) = 3 (mod 52)
2L1−L2donne 3`(2) = 51 (mod 52), c’est-à-dire 3(`(2)−17) = 0 (mod 52). Or, 52 et 3sont premiers entre eux donc
d’après le théorème de Gauss et puisque 17 ∈J0; 51K,`(2) = 17 , donc en réinjectant dans L1, il vient `(5) = 19.
Remarque : sans l’astuce 51 = 3 ×17, nous aurions dû chercher un inverse de 3 modulo 52. Un tel inverse existe car
3 et 52 sont premiers entre eux, donc d’après le théorème de Bézout, il existe (u, v)∈Z2tel que 3u+ 52v= 1, donc
3u≡1 (mod 52), et l’algorithme d’Euclide permet de déterminer une solution particulière (u0, v0).
(b) `(40) = `23×5= 3`(2) + `(5) = 70 = 18 (mod 52). Donc `(40) = 18 , comme vu à la question I 3. (b).
(c) Si 2α5β∈J1; 52K, avec αet βentiers naturels, puisque 53= 125, nous avons nécessairement 0≤β≤2. Réciproque-
ment, si β= 2, alors 0≤α≤1, si β= 1, alors 0≤α≤3et si β= 0, alors 0≤α≤5. Il y a donc 2+4+6=
12 entiers de J1; 52Kpouvant s’écrire sous la forme 2α5β, avec αet βentiers naturels.
Remarque : la connaissance des logarithmes de 2et 5permet donc de déterminer les logarithmes de 10 autres entiers
de J1; 52K.
4. (a) Par définition du reste de la division euclidienne par p, l’ensemble des (gsA(mod p)), pour s∈J0; p−2K, est inclus
dans J0; p−1K. Or, pest premier avec gset premier avec A, donc par contraposée du lemme d’Euclide, pne divise pas
gsAdonc (gsA(mod p)) ne peut pas prendre la valeur 0. Ainsi, les p−1valeurs de (gsA(mod p)) sont bien dans
J1; p−1K. Il reste à montrer qu’elles sont distinctes. Supposons qu’elles ne le sont pas. Alors il existe (i, j)∈J0; p−2K2
tel que i6=jet giA=gjA(mod p). Donc gi−gjA= 0 (mod p). Or, pet Asont premiers entre eux, donc d’après
le théorème de Gauss, pdivise gi−gj, c’est-à-dire gi=gj(mod p). D’après la question I 2. (a), nous savons que
cela signifie que i=j. Contradiction. Donc l’ensemble des (gsA(mod p)), pour s∈J0; p−2K, est J1; p−1K.
Remarque : ce résultat permet de faire l’hypothèse de la question suivante, c’est-à-dire qu’il existe un entier naturel
stel que (gsA(mod p)) se factorise à l’aide de p1,...,pnuniquement.
(b) A∈J1; p−1K, donc g`(A)(mod p)=A, donc A=g`(A)(mod p)et gsA=gs+`(A)(mod p)en multipliant par gs,
donc nous avons (gsA(mod p)) = gs+`(A)(mod p). Donc, par hypothèse, il existe nentiers naturels e1,...,entels
que gs+`(A)(mod p)=pe1
1. . . pen
n, donc la question II 2. donne `(A) = e1`(p1) + · · · +en`(pn)−s(mod (p−1)).
(c) Nous connaissons `(2) et `(5), donc il suffit de trouver un entier stel que (20s×30 (mod 53)) soit un entier de J1; 52K
s’écrivant sous la forme 2α5β, avec αet βentiers naturels. Pour s= 3, nous avons 203×30=16=24(mod 53).
En posant A:= 30, s := 3, p1:= 2, nous avons (gs×A(mod p)) = p4
1, donc d’après la question précédente et la
question II 3. (a), `(30) = 4`(2) −3 = 65 = 13 (mod 52). Donc `(30) = 13.
5. Dans les questions suivantes, nous utiliserons à plusieurs reprises la croissance du logarithme népérien sans le préciser.
Par ailleurs, les logarithmes considérés seront positifs ou strictement positifs, puisque tout nombre premier est strictement
supérieur à 1.
(a) Soit αle plus grand entier naturel tel que pα
1≤p−1. Nous avons donc α≤ln(p−1)
ln p1
. Or, αest entier, donc
0≤α≤ln(p−1)
ln p1. Réciproquement, soit un entier naturel αtel que 0≤α≤ln(p−1)
ln p1. Pour tout réel x, nous
avons bxc ≤ x, donc α≤ln(p−1)
ln p1
, donc pα
1≤p−1. L’ensemble des entiers naturels αtels que pα
1≤p−1est donc
0,...,ln(p−1)
ln p1. Donc il y a ln(p−1)
ln p1+ 1 entiers de J1; p−1Kqui sont une puissance de p1.
2
(b) D’après la question II 4. (a), l’ensemble des (gsA(mod p)), pour s∈J0; p−2K, est J1; p−1K, donc la probabilité
qu’un entier s∈J0; p−2Ksoit tel que (gsA(mod p)) soit une puissance de p1est égal au nombre de puissances de
p1dans J1; p−1K, divisé par le nombre d’entiers dans J1; p−1K, c’est-à-dire 1
p−1ln(p−1)
ln p1+ 1.
(c) Essayons de généraliser la question II 3. (c) et cherchons le nombre Nd’entiers de J1; p−1Kpouvant s’écrire sous la
forme pα
1pβ
2, avec αet βentiers naturels. Posons m:= ln(p−1)
ln p2. D’après la question II 5. (a), mest la plus grande
puissance de p2dans J1; p−1K. Soit i∈J0; mKfixé. Combien existe-t-il d’entiers naturels αtels que pα
1pi
2∈J1; p−1K,
c’est-à-dire tels que pα
1≤ln p−1
pi
2? La méthode de la question II 5. (a) permet de conclure qu’il en existe
ln p−1
pi
2
ln p1
+1. Puisque ipeut prendre chaque valeur de J0; mK, nous avons N=
m
P
i=0
ln p−1
pi
2
ln p1
+ 1
. Com-
mençons par minorer N. Pour tout réel x, nous avons bxc+1 > x, donc N >
m
P
i=0
ln p−1
pi
2
ln p1
=1
ln p1
m
P
i=0
ln p−1
pi
2=
1
ln p1
ln (p−1)m+1
p0+1+···+m
2=1
ln p1
ln
(p−1)m+1
p
m(m+1)
2
2
=1
ln p1
ln
(p−1) m+1
2×(p−1) m+1
2
p
m(m+1)
2
2
. Par définition de m, nous
avons d’une part, p−1≥pm
2donc (p−1) m+1
2≥p
m(m+1)
2
2donc (p−1) m+1
2
p
m(m+1)
2
2
≥1, et d’autre part, pm+1
2> p −1
donc m+ 1 >ln(p−1)
ln p2
. Il vient donc N >
ln (p−1) m+1
2
ln p1
= (m+ 1) ln(p−1)
2 ln p1
>ln2(p−1)
2 ln p1ln p2
. Ensuite, majo-
rons N. Il suffit de chercher la plus grande valeur des termes de la somme : elle est atteinte pour la plus petite
valeur de pi
2, c’est-à-dire pour 1 = p0
2, donc nous avons la majoration classique N≤(m+ 1) ln(p−1)
ln p1+ 1=
ln(p−1)
ln p1+ 1ln(p−1)
ln p2+ 1≤ln(p−1)
ln p1
+ 1ln(p−1)
ln p2
+ 1. Puisque la probabilité Pcherchée vaut
P=N
p−1, nous avons ln2(p−1)
2(p−1) ln p1ln p2
≤P≤1
p−1ln(p−1)
ln p1
+ 1ln(p−1)
ln p2
+ 1.
Remarque : la majoration de Npeut aussi s’obtenir directement avec un raisonnement combinatoire. Soit αle plus
grand entier naturel tel que pα
1≤p−1et βle plus grand entier naturel tel que pβ
2≤p−1. Tout entier de J1; p−1K
s’écrivant pa
1pb
2, avec aet bentiers naturels, vérifie nécessairement 0≤a≤α=ln(p−1)
ln p1et 0≤b≤β=
ln(p−1)
ln p2. En effet, si a > α, alors, par définition de αet puisque pb
2≥1, il vient pa
1pb
2≥pa
1≥pα+1
1> p −1, ce
qui est impossible. Même raisonnement si b > β. Il y a donc au plus ln(p−1)
ln p1+ 1ln(p−1)
ln p2+ 1entiers
de J1; p−1Ks’écrivant pa
1pb
2.
(d) La majoration est immédiate à généraliser. En revanche, la minoration, déjà technique avec deux nombres premiers,
est délicate à généraliser. En effet, le 2 au dénominateur peut se généraliser de plusieurs façons : n, 2nou n!. L’aspect
multiplicatif de la minoration nous oriente plutôt vers 2nou n!, et la puissance du logarithme nous rappelle les
expressions de la forme xn
n!. Commençons par traiter le cas n= 3. Soit Nle nombre d’entiers de J1; p−1Kpou-
vant s’écrire sous la forme pi
1pj
2pk
3, avec i, j, k des entiers naturels. Posons m:= ln(p−1)
ln p3. Soit k∈J0; mK. Soit
Nkle nombre de couples d’entiers naturels (i, j)tels que pi
1pj
2pk
3≤p−1. Puisque cette inégalité est équivalente à
pi
1pj
2≤p−1
pk
3
, d’après la question précédente, en posant uk:= p−1
pk
3
, nous avons Nk≥ln2(uk)
2 ln p1ln p2
. Précisons que
changer p−1en ukpour appliquer la minoration de la question précédente est licite parce que le fait que p−1
soit un entier et le fait que psoit premier n’intervenaient pas dans la preuve de la minoration. Nous avons donc
N=
m
P
k=0
Nk≥1
2 ln p1ln p2
m
P
k=0
ln2(uk). Le carré empêche cette fois de transformer la somme en produit, donc nous
poursuivons la minoration à l’aide d’une comparaison série-intégrale. Posons f:t7→ ln p−1
pt
3. Nous avons donc
f(k) = ln2(uk). La fonction fest décroissante et continue sur R+, donc pour tout k∈J0; mK, nous avons f(k)≥
k+1
R
k
f(t) dt. Cette intégrale se calcule simplement car f(t) = v2(t), avec v(t) = ln p−1
pt
3, donc v0(t) = −ln p3, et
3
nous savons qu’une primitive de v0(t)v2(t)est v3(t)
3. D’où
k+1
R
k
f(t) dt=1
3 ln p3ln3uk−ln3uk+1. En reconnaissant
une somme télescopique, il vient donc
m
P
k=0
ln2(uk) =
m
P
k=0
f(k)≥
m
P
k=0
k+1
R
k
f(t) dt=1
3 ln p3
m
P
k=0 ln3uk−ln3uk+1=
1
3 ln p3ln3u0−ln3um+1=ln3(p−1)
3 ln p3
−1
3 ln p3
ln p−1
pm+1
3. Or, par définition de m, nous avons p−1< pm+1
3
donc −ln p−1
pm+1
3>0, donc
m
P
k=0
ln2(uk)>ln3(p−1)
3 ln p3
. Nous avons donc N≥ln3(p−1)
3×2×ln p1ln p2ln p3
. Nous en
déduisons que la minoration se généralise par lnn(p−1)
n! ln p1. . . ln pn
. Prouvons-le par récurrence sur n. Initialisation :
le cas n= 1 se déduit de la question II 5. (a) et de la minoration bxc+ 1 > x, valable pour tout réel x. Hé-
rédité : soit Nle nombre d’entiers de J1; p−1Kse factorisant à l’aide de n+ 1 nombres premiers distincts uni-
quement. Supposons que le nombre d’entiers de J1; p−1Kse factorisant à l’aide de nnombres premiers distincts
p1,...,pnuniquement soit supérieur à lnn(p−1)
n! ln p1. . . ln pn
. Soit pn+1 un nombre premier distinct de p1,...,pn. Posons
m:= ln(p−1)
ln pn+1 . Soit k∈J0; mK. Soit Nkle nombre d’entiers de J1; p−1Ks’écrivant sous la forme pk
n+1X, où
Xse factorise à l’aide de p1,...,pnuniquement. En posant uk:= p−1
pk
n+1
, par hypothèse de récurrence, nous avons
Nk≥lnn(uk)
n! ln p1. . . ln pn
. Donc N=
m
P
k=0
Nk≥1
n! ln p1. . . ln pn
m
P
k=0
lnn(uk). En minorant
m
P
k=0
lnn(uk)avec une compa-
raison série-intégrale comme ci-dessus, nous obtenons
m
P
k=0
lnn(uk)≥1
(n+ 1) ln pn+1
m
P
k=0 lnn+1 uk−lnn+1 uk+1=
1
(n+ 1) ln pn+1 lnn+1 u0−lnn+1 um+1=lnn+1(p−1)
(n+ 1) ln pn+1
−1
(n+ 1) ln pn+1
ln p−1
pm+1
n+1 !. De même que précédem-
ment, la définition de mmène à −ln p−1
pm+1
n+1 !>0, donc
m
P
k=0
lnn(uk)>lnn+1(p−1)
(n+ 1) ln pn+1
, ce qui donne bien N≥
lnn+1(p−1)
(n+ 1)! ln p1. . . ln pn+1
. La probabilité Pcherchée vérifie donc :
lnn(p−1)
n!(p−1) ln p1. . . ln pn
≤P≤1
p−1ln(p−1)
ln p1
+ 1· · · ln(p−1)
ln pn
+ 1.
Remarque : interprétons ce résultat. Soient pun nombre premier et gune racine primitive modulo p. Supposons
que nous connaissions les logarithmes (de base gmodulo p) de nnombres premiers distincts p1,...,pnstrictement
inférieurs à p. Supposons que nous cherchions le logarithme d’un entier A∈J1; p−1K. Nous savons qu’il existe un
entier s∈J0; p−2Ktel que (gsA(mod p)) se factorise à l’aide de p1,...,pnuniquement. Trouver un tel entier s
nous permet de calculer le logarithme de A. Cependant, pour tout entier n≥1, nous avons lim
p→+∞
lnn(p−1)
p−1= 0
par croissance comparée, donc plus pest grand, plus la probabilité de trouver par hasard un tel entier sest faible.
4
1 / 4 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!