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 g´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 g´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 p´eriode maximale d’un MLCG ?
Enfin, il est possible de d´emontrer (cf. [Knuth, TAOCP, vol.2]) que si λ(m) est la
p´eriode maximale d’un MLCG modulo m, alors λ(2e) = 2e−2pour 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, p−qdoit ˆetre relativement
grand.
•Pour r´esister aux algorithmes p−1 et p+ 1 de Pollard, ainsi que pour r´esister `a une
attaque cyclique, pet qdoivent ˆetre des nombres premiers robustes (strong primes),
c’est `a dire qu’ils doivent chacun v´erifier :
–p−1 poss`ede un grand facteur, not´e r.
–p+ 1 poss`ede un grand facteur.
–r−1 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. G´en´erer deux nombres premiers set tde bbits.
2. Chercher rpremier de la forme 2kt + 1.
3. Calculer m= (2sr−2mod r)s−1.
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 proc´edure fournissant un nombre premier
robuste. De quelle autre routine avez-vous besoin ? Qu’en d´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, d´ecouvrir les kpremiers bits de xest aussi difficile que de
d´ecouvrir la clef secr`ete associ´ee `a net e.
1. En utilisant les proc´edures pr´ec´edentes, en d´eduire une proc´edure 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 sˆ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 g´en´erant une suite de bits al´eatoires avec le g´en´erateur BBS.
2. Comment peut-on utiliser ce g´en´erateur pour fabriquer une proc´edure 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. V´erifier que si p≡3[4] et si xest un carr´e modulo palors y≡xp+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%
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!