Universit´e de Bordeaux L3 Math, Info, Math-Info Coll`ege Sciences et Technologies
Ann´ee Universitaire 2014-2015 Examen
Parcours : IN601, MA601, MA603 UE :N1MA6W31 Epreuve :´ Cryptographie et Arithm´etique
Date : 5 Mai 2015 Heure : 14h00 Dur´ee : 3h Documents : Aucun document autoris´e
Epreuve de M. Cerri´
L’usage de la calculatrice est autoris´e.
La qualit´e de la r´edaction sera un facteur d’appr´eciation important.
Exercice 1[Algorithme de Dixon]
On d´esire factoriserN = 3329597. Pour cela on prend comme base de premiers B={−1,2,3,5,7,11,13}
et on calcule quelques carr´es modulo N d´ecomposables dans B.
1. Rappeler pourquoi on obtient au moins un diviseur non trivial de N si on trouve deux entiers x, y v´erifiantx6≡ ±y modN etx2 ≡y2modN.
2. On obtient les congruences suivantes modulo N :
788652 ≡ 3×73
344772 ≡ (−1)×23×52×13 3245642 ≡ 2×3×5×7 386222 ≡ (−1)×22×11×13 396852 ≡ (−1)×22×3×13 204012 ≡ 23×3×72
1833912 ≡ (−1)×25×13 953232 ≡ 22×3×73 2065322 ≡ (−1)×11×13 79542 ≡ 73×11
552262 ≡ 25×7 1571592 ≡ 3×5×72
A l’aide de ces congruences, trouver deux diviseurs non triviaux de` N. On donnera le d´etail des calculs.
Exercice 2[Syst`eme de Rabin]
1. Soit p un premier impair. Montrer que dansZ/pZ on ax2 =y2 ⇔ x =±y et en d´eduire qu’il y a
p−1
2 carr´es non nuls dansZ/pZ.
2. Montrer que les carr´es non nuls deZ/pZ sont exactement les racines du polynˆome Xp−12 −1.
3. Montrer que dansZ/pZ,−1 est un carr´e si et seulement si p≡1 mod 4.
4. Soitpun nombre premier v´erifiant p≡3 mod 4. Soitx un carr´e deZ/pZ. Posonsy =xp+14 . Montrer quey2 =x. En d´eduire un algorithme1permettant de calculer toutes les racines carr´ees dexdansZ/pZ. 5. Quelle est la complexit´e arithm´etique de cet algorithme (nombre d’op´erations dans Z/pZ) ? Quelle est sa complexit´e binaire ?
6. Soient p etq deux nombres premiers impairs distincts. On pose N =pq. Soit x un carr´e de Z/NZ. A l’aide du th´` eor`eme chinois montrer que xadmet 1, 2 ou 4 racines carr´ees dansZ/NZ. On distinguera les cas
(a) : x= 0,
(b) : x6= 0 etx6∈(Z/NZ)×, (c) : x∈(Z/NZ)×.
7. Le syst`eme cryptographique de Rabin est un syst`eme asym´etrique bas´e sur la difficult´e de calculer
1Il n’est pas demand´e de r´ediger les calculs de l’algorithme en d´etail.
une racine carr´ee dansZ/NZquand N est compos´e. Bob choisit deux nombres premiers distinctspetq congrus `a 3 modulo 4. La cl´e publique de Bob estN =pq. Sa cl´e secr`ete est le couple (p, q). Alice d´esire envoyer un message m ∈Z/NZ `a Bob. Dans Z/NZ elle calculec =m2 qui est le chiffr´e qu’elle envoie
`
a Bob. Montrer que Bob peut trouver, en utilisant l’algorithme de la question 4, tous les candidats possibles pour m. D´ecrire en d´etail les calculs de Bob.
8. Exemple p´edagogique. On prend p = 19, q = 31, N = 589. Bob re¸coit le message c= 537. Trouver toutes les possibilit´es pour m en utilisant les calculs pr´ec´edemment d´ecrits.
9. Montrer que si un attaquant est capable de d´eterminer toutes les racines carr´ees d’un chiffr´ec6= 0, il est en mesure de factoriserN. Ceci prouve que casser Rabin est au moins aussi difficile que factoriser.
10. Un des inconv´enients de ce syst`eme est qu’il y a plusieurs candidats pour le clair. Montrer qu’imposer
`
amd’ˆetre un carr´e deZ/NZpermet de lever cette ambigu¨ıt´e. On admettra que Bob sait reconnaˆıtre un carr´e modulo un nombre premier, ce qui se fait sans peine par le calcul rapide du symbole de Legendre.
Indication: se servir de la question 3.
Exercice 3[Log Discret]
On consid`ere le premier p = 1283. Une racine primitive modulo p est g = 2. On d´esire r´esoudre le probl`eme du logarithme discret suivant :
trouverx (modulop−1) tel queh=gxmodp, o`u h= 437.
Pour ce faire on utilise la m´ethode du calcul d’indice et on trouve :
g42 ≡ 5×7×13 mod p g55 ≡ 5×72 mod p g862 ≡ 52×13 mod p
1. En d´eduire un syst`eme de trois ´equations lin´eaires v´erifi´e par x5 = logg(5), x7 = logg(7) et x13 = logg(13) (modulo p−1).
2. La d´ecomposition en produit de premiers de p−1 est 2×641. Calculerx5 etx7 modulo 2 et modulo 641.
3. En d´eduirex5 etx7.
4. On trouve quehg−222 ≡52×7 modp. Calculerx= logg(h).
Exercice 4[Corps finis]
1. SoitP(X) =X4+X3+ 1∈F2[X]. Montrer que P(X) est irr´eductible dans F2[X].
2. On consid`ere le corps C=F2[X]/(P(X)). CombienC a-t-il d’´el´ements ? D´ecrire ces ´el´ements comme polynˆomes de α, la classe de X dansC.
3. Alice et Bob utilisent un syst`eme cryptographique sym´etrique. Leur cl´e secr`ete est un ´el´ement K de (C×)2× C4×(C×)2. Quel est le nombre de cl´es secr`etes possibles ?
4. Les messages ´echang´es par Alice et Bob sont ´egalement des ´el´ements de (C×)2 × C4×(C×)2. Alice veut envoyerm= (m1, m2, . . . , m8) `a Bob. Pour cela elle utilise l’algorithme de chiffrement suivant.
Elle calculec= (c1, c2, . . . , c8)∈ C8 d´efini par :
• c1 =m1K1
• c2 =m−12 K2
• c3
c4
=
α3+ 1 α3+α2 α2+α+ 1 α3+ 1
m3
m4
+ K3
K4
• c5
c6
=
α2+α α2+ 1 α3+α+ 1 α2+α
m5
m6
+
K5
K6
• c7 =m−17 K7
• c8 =m8K8
o`u K= (K1, K2, . . . , K8). Elle envoie c `a Bob. V´erifier que c∈(C×)2× C4×(C×)2. 5. Alice veut envoyer m= (1, α,0, α2,1,0, α3+ 1, α2+α) `a Bob.
Leur cl´e secr`ete est K = (α2, α3,0,1,0, α, α, α3+α). Quel est le chiffr´e c?
6. Montrer, en toute g´en´eralit´e, comment Bob fait pour d´echiffrer c et retrouver m. On observera en particulier que l’algorithme est exactement le mˆeme `a la diff´erence pr`es que l’on utilise une nouvelle cl´e K0 que l’on d´efinira en fonction de K.
7. Bob a re¸cu c= (α, α2+α,0,1, α, α2+ 1, α3+α, α3+α2). Retrouver le clair.