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; p2K. Tout d’abord, puisque gest une racine primitive modulo p, nous avons
l’inclusion Egk(mod p), k N=J1; p1K. Pour montrer que cette inclusion est une égalité, il suffit de
montrer que l’ensemble Econtient p1éléments. Supposons que ce n’est pas le cas. Alors il existe (i, j)J0; p2K2
tel que i > j et gi=gj(mod p). Donc gjgij1= 0 (mod p), c’est-à-dire pdivise gjgij1. Or, 0< g < p
et pest premier donc pet gsont premiers entre eux, donc d’après le théorème de Gauss, pdivise gij1, c’est-
à-dire gij= 1 (mod p), où ijJ1; p2K. Soit kN. Posons b:= ijet considérons la division euclidienne
de kpar b: il existe (q, r)N2tel que k=bq +ret 0rb1. Donc gk=gbqgr=gr(mod p). Or,
0rb1p3donc l’ensemble gk(mod p), k Ncontient au plus p2éléments. Contradiction. Donc
gk(mod p), k J0; p2K=J1; p1K.
(b) D’après la question précédente, les ensembles gk(mod p), k J0; p2Ket J1; p1Kont le même cardinal fini
non nul, ils sont donc en bijection. Autrement dit, pour tout AJ1; p1K, il existe un unique entier aJ0; p2K
tel que A= (ga(mod p)).
(c) Supposons ba. Puisque b=a(mod (p1)), il existe kNtel que ba=k(p1). Donc gba=gp1k
(mod p). Or, pest premier et ne divise pas g, donc d’après le petit théorème de Fermat, gp1= 1 (mod p), donc
gba= 1 (mod p). En multipliant par ga, il vient gb(mod p)= (ga(mod p)). De même si ab.
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 ab
et ga=gb(mod p), alors gab= 1 (mod p). Nous avons ga=gb(mod p)si et seulement si gbgab1= 0 (mod p),
c’est-à-dire si et seulement si pdivise gbgab1. Or, 0< g < p et pest premier donc pet gsont premiers entre eux,
donc d’après le théorème de Gauss, pdivise gab1, c’est-à-dire gab= 1 (mod p). Ensuite, montrons que si xNest tel
1
que gx= 1 (mod p), alors p1divise x. Effectuons la division de xpar p1: il existe (q, r)N2tel que x= (p1)q+r
et 0rp2. Donc 1 = gx=gp1qgr=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; p2K}=J1; p1Ket g0= 1 (mod p), donc r= 0. Donc
x= (p1)q, donc p1divise x. Enfin, précisons que p1divise absi et seulement si p1divise ba, ce qui
règle le cas où ab. Conclusion : si ga=gb(mod p), alors p1divise ab. Pour répondre à la question, il suffit
donc de montrer que pour tout iJ1; nK, gai=gei,1`(p1)+···+ei,n`(pn)(mod p). Or, pour tout kJ1; 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 (p1)).
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 (p1)). 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)
2L1L2donne 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
3u1 (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 sJ0; p2K, est inclus
dans J0; p1K. 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 p1valeurs de (gsA(mod p)) sont bien dans
J1; p1K. Il reste à montrer qu’elles sont distinctes. Supposons qu’elles ne le sont pas. Alors il existe (i, j)J0; p2K2
tel que i6=jet giA=gjA(mod p). Donc gigjA= 0 (mod p). Or, pet Asont premiers entre eux, donc d’après
le théorème de Gauss, pdivise gigj, 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 sJ0; p2K, est J1; p1K.
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) AJ1; p1K, 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 (p1)).
(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α
1p1. Nous avons donc αln(p1)
ln p1
. Or, αest entier, donc
0αln(p1)
ln p1. Réciproquement, soit un entier naturel αtel que 0αln(p1)
ln p1. Pour tout réel x, nous
avons bxc ≤ x, donc αln(p1)
ln p1
, donc pα
1p1. L’ensemble des entiers naturels αtels que pα
1p1est donc
0,...,ln(p1)
ln p1. Donc il y a ln(p1)
ln p1+ 1 entiers de J1; p1Kqui sont une puissance de p1.
2
(b) D’après la question II 4. (a), l’ensemble des (gsA(mod p)), pour sJ0; p2K, est J1; p1K, donc la probabilité
qu’un entier sJ0; p2Ksoit tel que (gsA(mod p)) soit une puissance de p1est égal au nombre de puissances de
p1dans J1; p1K, divisé par le nombre d’entiers dans J1; p1K, c’est-à-dire 1
p1ln(p1)
ln p1+ 1.
(c) Essayons de généraliser la question II 3. (c) et cherchons le nombre Nd’entiers de J1; p1Kpouvant s’écrire sous la
forme pα
1pβ
2, avec αet βentiers naturels. Posons m:= ln(p1)
ln p2. D’après la question II 5. (a), mest la plus grande
puissance de p2dans J1; p1K. Soit iJ0; mKfixé. Combien existe-t-il d’entiers naturels αtels que pα
1pi
2J1; p1K,
c’est-à-dire tels que pα
1ln p1
pi
2? La méthode de la question II 5. (a) permet de conclure qu’il en existe
ln p1
pi
2
ln p1
+1. Puisque ipeut prendre chaque valeur de J0; mK, nous avons N=
m
P
i=0
ln p1
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 p1
pi
2
ln p1
=1
ln p1
m
P
i=0
ln p1
pi
2=
1
ln p1
ln (p1)m+1
p0+1+···+m
2=1
ln p1
ln
(p1)m+1
p
m(m+1)
2
2
=1
ln p1
ln
(p1) m+1
2×(p1) m+1
2
p
m(m+1)
2
2
. Par définition de m, nous
avons d’une part, p1pm
2donc (p1) m+1
2p
m(m+1)
2
2donc (p1) m+1
2
p
m(m+1)
2
2
1, et d’autre part, pm+1
2> p 1
donc m+ 1 >ln(p1)
ln p2
. Il vient donc N >
ln (p1) m+1
2
ln p1
= (m+ 1) ln(p1)
2 ln p1
>ln2(p1)
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(p1)
ln p1+ 1=
ln(p1)
ln p1+ 1ln(p1)
ln p2+ 1ln(p1)
ln p1
+ 1ln(p1)
ln p2
+ 1. Puisque la probabilité Pcherchée vaut
P=N
p1, nous avons ln2(p1)
2(p1) ln p1ln p2
P1
p1ln(p1)
ln p1
+ 1ln(p1)
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α
1p1et βle plus grand entier naturel tel que pβ
2p1. Tout entier de J1; p1K
s’écrivant pa
1pb
2, avec aet bentiers naturels, vérifie nécessairement 0aα=ln(p1)
ln p1et 0bβ=
ln(p1)
ln p2. En effet, si a > α, alors, par définition de αet puisque pb
21, il vient pa
1pb
2pa
1pα+1
1> p 1, ce
qui est impossible. Même raisonnement si b > β. Il y a donc au plus ln(p1)
ln p1+ 1ln(p1)
ln p2+ 1entiers
de J1; p1Ks’é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; p1Kpou-
vant s’écrire sous la forme pi
1pj
2pk
3, avec i, j, k des entiers naturels. Posons m:= ln(p1)
ln p3. Soit kJ0; mK. Soit
Nkle nombre de couples d’entiers naturels (i, j)tels que pi
1pj
2pk
3p1. Puisque cette inégalité est équivalente à
pi
1pj
2p1
pk
3
, d’après la question précédente, en posant uk:= p1
pk
3
, nous avons Nkln2(uk)
2 ln p1ln p2
. Précisons que
changer p1en ukpour appliquer la minoration de la question précédente est licite parce que le fait que p1
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
Nk1
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 p1
pt
3. Nous avons donc
f(k) = ln2(uk). La fonction fest décroissante et continue sur R+, donc pour tout kJ0; 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 p1
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 p3ln3ukln3uk+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 ln3ukln3uk+1=
1
3 ln p3ln3u0ln3um+1=ln3(p1)
3 ln p3
1
3 ln p3
ln p1
pm+1
3. Or, par définition de m, nous avons p1< pm+1
3
donc ln p1
pm+1
3>0, donc
m
P
k=0
ln2(uk)>ln3(p1)
3 ln p3
. Nous avons donc Nln3(p1)
3×2×ln p1ln p2ln p3
. Nous en
déduisons que la minoration se généralise par lnn(p1)
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; p1Kse factorisant à l’aide de n+ 1 nombres premiers distincts uni-
quement. Supposons que le nombre d’entiers de J1; p1Kse factorisant à l’aide de nnombres premiers distincts
p1,...,pnuniquement soit supérieur à lnn(p1)
n! ln p1. . . ln pn
. Soit pn+1 un nombre premier distinct de p1,...,pn. Posons
m:= ln(p1)
ln pn+1 . Soit kJ0; mK. Soit Nkle nombre d’entiers de J1; p1Ks’écrivant sous la forme pk
n+1X, où
Xse factorise à l’aide de p1,...,pnuniquement. En posant uk:= p1
pk
n+1
, par hypothèse de récurrence, nous avons
Nklnn(uk)
n! ln p1. . . ln pn
. Donc N=
m
P
k=0
Nk1
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 uklnn+1 uk+1=
1
(n+ 1) ln pn+1 lnn+1 u0lnn+1 um+1=lnn+1(p1)
(n+ 1) ln pn+1
1
(n+ 1) ln pn+1
ln p1
pm+1
n+1 !. De même que précédem-
ment, la définition de mmène à ln p1
pm+1
n+1 !>0, donc
m
P
k=0
lnn(uk)>lnn+1(p1)
(n+ 1) ln pn+1
, ce qui donne bien N
lnn+1(p1)
(n+ 1)! ln p1. . . ln pn+1
. La probabilité Pcherchée vérifie donc :
lnn(p1)
n!(p1) ln p1. . . ln pn
P1
p1ln(p1)
ln p1
+ 1· · · ln(p1)
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 AJ1; p1K. Nous savons qu’il existe un
entier sJ0; p2Ktel 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 n1, nous avons lim
p+
lnn(p1)
p1= 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 linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !