Universit´e de Bordeaux L3 Math, Info, Math-Info Coll`ege Sciences et Technologies
Ann´ee Universitaire 2015-2016 Examen
Parcours : IN601, MA601, MA603 UE :N1MA6W31 Epreuve :´ Cryptographie et Arithm´etique
Date : 26 Avril 2016 Heure : 14h00 Dur´ee : 3h Documents : Aucun document autoris´e
Epreuve de M. Cerri´
Corrig´e
Exercice 1 [Th´eor`eme de Proth]
1)Soient α∈Z/nZ une racine primitive modulo neta∈Ztel queα=a.
L’´el´ementα´etant d’ordren−1 dans (Z/nZ)×, on aαn−1 = 1 etαn−12 6= 1. Orαn−1 = 1 implique (αn−12 −1)(αn−12 +1) = 0. MaisZ/nZest un corps etαn−12 −16= 0. On en d´eduit queαn−12 +1 = 0, ce qui donne an−12 ≡ −1 modn.
2.a) Commean−12 ≡ −1 modn, on a an−12 ≡ −1 modp etαn−12 =−1 dans Z/pZ. Ceci implique que αn−1 = 1 et que α∈ (Z/pZ)× d’inverse αn−2. De plus, comme 1 6=−1 (car,n ´etant impair, on a p > 2), l’ordre deα dans (Z/pZ)× divise n−1 = 2rs mais ne divise pas n−12 = 2r−1s. Ceci n’est possible que si 2r divise cet ordre.
2.b) L’ordre de α dans (Z/pZ)× divise p−1 (cons´equence du th´eor`eme de Lagrange). On en d´eduit que 2r divisep−1 et donc p≡1 mod 2r.
2.c)
i) Si nest compos´e il s’´ecrit comme produit de t≥2 nombres premiers n=Qt
i=1pi. Par la question pr´ec´edente, pour touti on api ≡1 mod 2r. Posons x=p1 ety =Qt
i=2pi. On a x, y >1 et x, y≡1 mod 2r, d’o`u x=k2r+ 1 et y=l2r+ 1 avec k, l >0. Comme n=xy on a la conclusion.
ii) Sik=l = 1 on obtientn= (2r+ 1)2 = 22r+ 2r+1+ 1 d’o`u l’on d´eduit s= 2r+ 2. Or s est impair.
iii) On a donc n≥(2×2r+ 1)(2r+ 1) = (2r+1+ 3)2r+ 1 d’o`us≥2r+1+ 3.
2.d) Par contraposition, commes <2r+1+ 3, on obtient quen est premier.
3)SiFnest premier, la question 1 implique qu’il existea∈Ztel queaFn−12 =a22
n−1
≡ −1 modFn. R´eciproquement si un tel a existe, le th´eor`eme de Proth (avec s= 1, r = 2n) montre que Fn est premier.
Remarque. On ne peut pas faire mieux que s < 2r+1+ 3 comme le montre le cas n = 15 = (22+ 3)21+ 1 qui est compos´e et v´erifie qu’il existe a=−1 tel que an−12 ≡ −1 modn.
Exercice 2 [Algorithme de Dixon] 1)Six2≡y2 modN, alors
(1) N |(x+y)(x−y).
Si pgcd(x+y, N) =N, alorsN |x+y etx≡ −ymodN, ce qui est faux. Si pgcd(x+y, N) = 1, alors (1) et le lemme de Gauss impliquent N | x−y ou encore x ≡ ymodN, ce qui est encore faux. Par suite pgcd(x+y, N) qui est un diviseur deN, est un diviseur non trivial deN. Le mˆeme
raisonnement s’applique `a pgcd(x−y, N).
2)En faisant par exemple1 le produit des congruences num´eros 2, 5 et 6 on obtient (10235×99334×80737)2 ≡(25×11)2modN,
ou encore2
11483232 ≡3522modN.
En posant x= 1148323 ety= 352, on constate que les hypoth`eses de la question 1 sont v´erifi´ees.
On calcule alors par exemple pgcd(x+y, N) `a l’aide de l’algorithme d’Euclide et on trouve 4177.
Un second diviseur non trivial de N est N/4177 = 809, que l’on peut aussi obtenir en calculant pgcd(x−y, N).
Exercice 3 [syst`eme cryptographique du sac `a dos de Naccache-Stern]
1) Comme pour tout i, 0< pi < p qui est premier, le petit th´eor`eme de Fermat donne : pp−1i = 1 modpdoncpb(p−1)i = 1 modp. Deas+b(p−1) = 1, on d´eduit que pour toution apasi pb(p−1)i = pi modp doncpasi =pi modp. Le choix vi=pai modpconvient.
2)On a
csmodp=
n
Y
i=0
vsmi i modp=
n
Y
i=0
pmi i modp= Y
i/mi=1
pi modp= Y
i/mi=1
pi
car Q
pi < p.
3)Alice calcule x=csmodp. Pour tout ielle fait la division euclidienne dex parpi. Si pi divise x alorsmi= 1. Sinon mi = 0.
4.a) Appliquons l’algorithme d’Euclide ´etendu `a p−1 = 210 ets= 97.
ri ri+1 qi ui vi
210 97 1 0
97 16 2 0 1
16 1 6 1 −2
1 0 6 −6 13
On obtient la relation de B´ezout 13s−6(p−1) = 1 donca= 13. Par cons´equentv0= 213mod 211, v1 = 313mod 211, v2 = 513mod 211 et v3 = 713mod 211. On utilise l’exponentiation binaire modulaire en tenant compte du fait que 13 = 23+ 22+ 1. On obtient alors v0 = 2×16×45 = 174 mod 211,v1 = 3×81×20 = 7 mod 211,v2= 5×203×64 = 183 mod 211 etv3 = 7×80×70 = 165 mod 211. Sa cl´e publique est donc
Kpub = (211,3,174,7,183,165).
4.b) Alice calcule x = csmodp = 9897mod 211. Elle utilise l’exponentiation binaire modulaire en tenant compte du fait que 97 = 26+ 25+ 1. Elle obtientx= 98×203×64 = 42 mod 211. Elle observe que 2 | 42, 3 | 42, 5 -42 et 7 |42 et elle en d´eduit que m = (1,1,0,1) ou 11. On peut v´erifier que sim= (1,1,0,1), le chiffr´e est effectivement 174×7×165 = 98 mod 211.
Exercice 4 [Log Discret]
1) Dans Z/pZ il calcule d’abord As = αks = Pk puis son inverse P−k `a l’aide de l’algorithme d’Euclide ´etendu. Il peut aussi commencer par calculer dansZ/pZl’inverse de Apuis l’´elever `a la puissance spour obtenirP−k. Enfin il calcule BP−k =m.
2.a) Le groupe (Z/pZ)× est d’ordre 36 = 22×32. Pour ´etablir que α qui est bien dans (Z/pZ)× est d’ordre 36, il suffit de v´erifier queα126= 1 et α186= 1, o`u ´egalit´es et in´egalit´es sont entendues
1On pouvait ´egalement s´electionner les congruences 2, 3, 4, 7 ou 1, 2, 4, 5 ou encore 1, 2, 3, 6, 7. Le choix 1, 4, 6 et le choix 1, 3, 5, 7 en revanche ´etaient infructueux car conduisant `ax≡ ±ymodN.
2Pour cela ne pas calculer (sauf si on calcule “`a la main”) 10235×99334×80737, puis le r´esultat obtenu modulo N, maisx= 10235×99334 modN, puisx×80737 modN.
modulo p. On a α6 = 64 = 27 d’o`u α12= 26 etα18= 36.
2.b) Trivialement, la cl´e publique de Bob est (37,2,27).
2.c) Bob calcule 256 mod 37 et trouve 10. Pour calculer 10−1 mod 37 il utilise l’algorithme d’Euclide ´etendu.
ri ri+1 qi ui vi
37 10 1 0
10 7 3 0 1
7 3 1 1 −3
3 1 2 −1 4
1 0 3 3 −11
On a donc la relation de B´ezout 3×31−11×10 = 1 et 10−1 mod 37 =−11 = 26. Bob calcule alors 9×26 mod 37 = 12. Le clair estm= 12.
3.a) Il y a φ(p−1) racines primitives modulo p. Or la d´ecomposition en produit de premiers de p−1 est 25468 = 22×6367 (pour ´etablir que 6367 est premier il faut quand mˆeme v´erifier qu’il n’est divisible par aucun premier ≤ 79, soit 22 divisions dont heureusement certaines sont triviales). On en d´eduit qu’il y a 2×6366 = 12732 racines primitives modulo p.
3.b) Notons a= log3(2), b= log3(5) et c= log3(7). Comme 490 = 2×5×72, 1568 = 25×72 et 700 = 22×52×7, on a le syst`eme
a+b+ 2c = 1117 mod (p−1) 5a+ 2c = 1387 mod (p−1) 2a+ 2b+c = 1695 mod (p−1)
En faisant par exemple 2×(1)−(3) on obtient 3c= 539 mod (p−1). Comme 25468 = 3×8489 + 1 on a 3−1mod (p−1) = −8489 d’o`u c = −8489× 539 mod (p− 1) = 8669. De (2) on tire 5a = 1387−2×8669 = 9517 mod (p−1). On voit facilement (ou sinon, on utilise Euclide
´
etendu) que 2×25468−10187×5 = 1 d’o`u l’on tire 5−1 mod (p−1) =−10187. On obtient alors a=−10187×9517 mod (p−1) = 6997. Enfin de (1) on tireb= 1117−6997−2×8669 mod (p−1) = 2250.
3.c)Sachant que 10994 = 3smodpet que 2450 = 2×52×72, on obtient en passant aux logarithmes s+ 1351 =a+ 2b+ 2cmod (p−1) d’o`us= 6997 + 2×2250 + 2×8669−1351 mod (p−1) = 2016.
La cl´e secr`ete de Bob est 2016.
Exercice 5 [Corps finis]
1)On voit queD= detAet on sait que siKest un corps,A∈M2(K) est inversible si et seulement si detA6= 0. Par ailleurs on voit facilement que siD6= 0, l’inverse deA est
(2) A−1 =D−1
d −b
−c a
.
2) Une matrice A ∈M2(K) est inversible si et seulement si ses deux colonnes forment une base de K2. Pour qu’il en soit ainsi, il faut et il suffit que la premi`ere colonne soit non nulle et que la seconde ne soit pas colin´eaire `a la premi`ere. Pour la premi`ere colonne not´eeC on a |K2| −1 choix (on exclut la colonne nulle) et, C´etant fix´ee, on a|K2| − |K|choix pour la seconde (on exclut les
|K|colonnes de la formeλC o`u λ∈K). Compte tenu de|K2|=|K|2 on a bien
(3) |GL2(K)|= |K|2−1
|K|2− |K|
. 3)On obtient facilement : X,X+ 1 etX2+X+ 1.
4) SiP(X) est r´eductible, il est divisible par un polynˆome irr´eductible de degr´e ≤j5 2 k
= 2. On voit facilement queP(X) n’ a pas de racine dansF2, donc n’est divisible ni parX, ni parX+1. Par ailleurs, la division euclidienne deP(X) parX2+X+1 estX5+X2+1 = (X2+X+1)(X3+X2)+1 etP(X) n’est pas divisible par X2+X+ 1.
5)Comme degP(X) = 5, on a|K|= 25= 32. On en d´eduit que|M2(K)|=|K|4= 220= 1048576.
De plus par (3) on a |GL2(K)|= (210−1)(210−25) = 1014816.
6) Par ce qui pr´ec`ede, le nombre de messages qu’ils peuvent ´echanger est 220 = 1048576. Le nombre de cl´es secr`etes possibles est|GL2(K)| × |M2(K)|= 220(210−1)(210−25)≈1.06×1012. 7)Trivialement, sic=Am+B on am=A−1(c−B) =A−1(c+B) car le corpsK donc l’anneau M2(K) sont de caract´eristique 2.
8)On a
c =
1 +α2+α3 α2+α4 1 +α3+α4 α2+α3
α+α3 1 +α2 1 +α3 α2+α4
+
1 +α4 α+α3 α+α4 α2+α4
=
1 +α+α2+α4+α6+α7 1 +α+α5+α8 α2+α7 1 +α3+α4+α7
.
Comme P(X) = X5+X2 + 1 on a α5 = 1 +α2, d’o`u l’on d´eduit successivement α6 = α+α3, α7 = α2 +α4 et α8 = α3+α5 = 1 +α2 +α3. En rempla¸cant dans la matrice pr´ec´edemment obtenue, on trouve
c=
1 +α3 1 +α+α3 α4 1 +α2+α3
.
9.a) On a D = (1 +α2+α3)(α2+α3)−(α2+α4)(1 +α3+α4) =α3+α5+α7+α8. Compte tenu des valeurs obtenues ci-dessus pourα5,α7 etα8 on trouve D=α2+α4.
9.b) Appliquons l’algorithme d’Euclide ´etendu dansF2[X] `a P(X) etX4+X2. ri(X) ri+1(X) qi(X) ui(X) vi(X)
X5+X2+ 1 X4+X2 1 0
X4+X2 X3+X2+ 1 X 0 1
X3+X2+ 1 X+ 1 X+ 1 1 X
X+ 1 1 X2 X+ 1 X2+X+ 1
1 0 X+ 1 X3+X2+ 1 X4+X3+X2+X
On en d´eduit la relation de B´ezout (X5+X2+1)(X3+X2+1)+(X4+X2)(X4+X3+X2+X) = 1.
En passant aux classes modulo P(X) on obtient (α4+α2)(α4+α3+α2+α) = 1 et D−1 =α+α2+α3+α4.
En reportant dans (2) on obtient
A−1 = (α+α2+α3+α4)
α2+α3 α2+α4 1 +α3+α4 1 +α2+α3
=
α3+α7 α3+α4+α7+α8 α+α2+α3+α8 α+α2+α4+α7
.
Compte tenu des valeurs de α7 etα8 obtenues plus haut on a finalement A−1 =
α2+α3+α4 1
1 +α α
.
9.c) Par la question 7, on a m =
α2+α3+α4 1
1 +α α
α2 α3 α4 1
+
1 +α4 α+α3 α+α4 α2+α4
=
α2+α3+α4 1
1 +α α
1 +α2+α4 α α 1 +α2+α4
=
α+α2+α3+α5+α7+α8 1 +α2+α3+α5 1 +α+α3+α4+α5 α2+α3+α5
,
ce qui, compte tenu des valeurs de α5,α7 etα8, donne m=
α+α4 α3 α+α2+α3+α4 1 +α3
.