IUP3 - Module M64/RISC - TD : Gordon I Attaque des générateurs

IUP3 - Module M64/RISC - TD : Gordon
I Attaque des g´en´erateurs congruentiels lin´eaires
Un en´erateur congruentiel lin´eaire est une suite de la forme
(X0
Xn+1 aXn+c[m]
pour X0,a,c,mquelconques. Le g´en´erateur est dit multiplicatif si c= 0.
1. Si mest premier, quelle est la p´eriode maximale d’un MLCG ? En particulier, Fishman-
Moore ont ´etudi´e en 1986 les en´erateurs modulo 231 1 = 950706376 et ont d´etermin´e
que celui pour a= 2147483647 est de p´eriode maximale et pr´esente de bonnes propri´et´es
statistiques. Que pouvez-vous dire de 2147483647 ?
2. Pour m=peavec ppremier impair, quelle est la eriode maximale d’un MLCG ?
Enfin, il est possible de d´emontrer (cf. [Knuth, TAOCP, vol.2]) que si λ(m) est la
eriode maximale d’un MLCG modulo m, alors λ(2e) = 2e2pour e > 2 et que λ(m) =
ppcm(λ(pe1
1)...λ(pek
k)) si m=pe1
1...pek
kavec p1...pkpremiers distincts.
3. En supposant que mest connu, comment r´ecup´erer aet cdans un LCG ?
4. Maintenant mest inconnu et l’on supposera tout d’abord que c= 0. Comment casser
le MLCG ? Indication : on pourra ´etudier xn+1 xn. Que se passe-t-il si c6= 0 ?
II Nombres premiers robustes
Afin de resister aux factorisations diverses, les nombres premiers utilis´es pour fabriquer le
modulo de RSA doivent v´erifier un certain nombre de propri´et´es :
Pour r´esister `a la factorisation par courbes elliptiques, pet qdoivent ˆetre de tailles
similaires et suffisamment grands. Par exemple, pour travailler sur 1024 bits ils devraient
tous les deux ˆetre de taille environ 512 bits.
Pour r´esister `a la factorisation par racines carr´ees de Fermat, pqdoit ˆetre relativement
grand.
Pour r´esister aux algorithmes p1 et p+ 1 de Pollard, ainsi que pour esister `a une
attaque cyclique, pet qdoivent ˆetre des nombres premiers robustes (strong primes),
c’est `a dire qu’ils doivent chacun v´erifier :
p1 poss`ede un grand facteur, not´e r.
p+ 1 poss`ede un grand facteur.
r1 poss`ede un grand facteur.
Ainsi, l’algorithme de Gordon ci-dessous, permet de g´en´erer des nombres premiers robustes :
Algorithme de Gordon
1. en´erer deux nombres premiers set tde bbits.
2. Chercher rpremier de la forme 2kt + 1.
3. Calculer m= (2sr2mod r)s1.
4. Retourner ple plus petit premier de la forme m+ 2hrs.
1. Montrer que la sortie de l’algorithme de Gordon est un nombre premier robuste.
2. En servant de la section pr´ec´edente, ´ecrire une proedure fournissant un nombre premier
robuste. De quelle autre routine avez-vous besoin ? Qu’en eduisez-vous sur les nombres
premiers g´en´er´es ?
1
III GPA cryptographiquement sˆurs
III.A) RSA
Soient net ele modulo et l’exposant d’un code RSA. Soit k=O([loglogn] + 1) un entier.
Alors, connaissant c=xemod n, ecouvrir les kpremiers bits de xest aussi difficile que de
ecouvrir la clef secr`ete associ´ee `a net e.
1. En utilisant les proedures pr´ec´edentes, en d´eduire une proedure prenant ken entr´ee
et g´en´erant une suite de bits al´eatoire et cryptographiquement sˆure.
III.B) Blum-Blum-Shub
Un autre g´en´erateur ur est celui de Blum, Blum et Shub : en prenant pet qpremiers assez
grands congrus `a 3 modulo 4 et en posant x0le carr´e d’un entier al´eatoire modulo n=pq,
il calcule la suite des xi+1 x2
i[n]. Or, casser la suite du bit de poid faible de xiest aussi
difficile que casser la factorisation.
1. ´
Ecrire une proc´edure en´erant une suite de bits al´eatoires avec le g´en´erateur BBS.
2. Comment peut-on utiliser ce en´erateur pour fabriquer une proedure de cryptage `a clef
publique d’un message suppos´e traduit en binaire (nseul ´etant public) ?
3. Quel entier faut-il reconstruire pour d´ecrypter ?
4. erifier que si p3[4] et si xest un carr´e modulo palors yxp+1
4[p] est une racine
carr´ee de x. En d´eduire une m´ethode de d´ecryptage du syst`eme de Blum-Golwasser `a
l’aide de l’algorithme d’Euclide ´etendu et du th´eor`eme des restes chinois.
2
1 / 2 100%

IUP3 - Module M64/RISC - TD : Gordon I Attaque des générateurs

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 !