UE MHT 633
Cryptologie
Feuille d’exercices n ◦ 5.
Cryptographie asym´ etrique
1 Nous d´ecrivons un chiffrement `a cl´e publique par les donn´ees suivantes:
• Gest un groupe ab´elien not´e multiplicativement,H etK sont des sous-groupes deGtels que H ∩K = {1} et G = HK. Tout ´el´ement g ∈ G s’´ecrit alors g = hk avec h ∈ H, k ∈ K, de fa¸con unique. On note π : G → H l’homomorphisme surjectif d´efini par π(g) =h si g =hk.
• L’espace des messages est un groupeH0isomorphe `aH. On fixe un isomorphismef :H → H0 et on suppose connue une application injective i :H0 →G telle que f ◦π◦i(x) =x pour tout x∈H0.
• La cl´e publique est (G, k) o`u k ∈K est un ´el´ement g´en´erateur de K (ou au moins d’un
“gros” sous-groupe de K).
• La cl´e priv´ee est la surjection π :G→H.
• Le chiffrement est e(x) =i(x)kr o`ur est un entier choisi al´eatoirement.
• Le d´echiffrement estd(y) = f◦π(y).
1. V´erifiez que ces donn´ees d´efinissent bien un syst`eme de chiffrement `a cl´e publique. Quel est l’avantage de l’utilisation du nombre al´eatoire r ?
2. On consid`ere l’instanciation suivante: n =pq est un produit de deux “grands” nombres premiers distincts et G= (Z/nZ)∗. Rappelez pourquoi G'(Z/pZ)∗×(Z/qZ)∗.
3. On note H et K les sous-groupes de G canoniquement isomorphes `a respectivement (Z/pZ)∗ et (Z/qZ)∗. Pr´ecisez les donn´ees du syst`eme dans ce cas.
4. Montrez que, pour que le syst`eme soit cryptographiquement sˆur il est n´ecessaire que n soit suffisamment grand pour qu’il soit calculatoirement impossible de le factoriser.
5. Montrez quek = 1 mod p et en d´eduire que p= (k−1, n).
6. Expliquez pourquoi ce syst`eme n’est pas cryptographiquement sˆur!
2 L’algorithme rho de Pollard pour le log discret.
SoitG un groupe multiplicatif etα ∈G un ´el´ement fix´e d’ordren. Soitβ ∈ hαiun ´el´ement dont on veut calculer le log discret de base α. L’id´ee de base de l’algorithme est de calculer une suite x1, x2, . . . , xi, . . . d’´el´ements de G, de sorte qu’une collision xi = xj pour i < j permette de calculer c = logα(β). La suite des xi est calcul´ee en it´erant une certaine fonction f. Plus pr´ecis´ement chaque ´el´ement x de la suite fait partie d’un triplet (x, a, b) v´erifiant x = αaβb. Les triplets (xi, ai, bi) d´efinissent une “marche al´eatoire” dans un certain ensemble fini.
1. Montrez que, si (x, a, b) v´erifie x = αaβb, alors les triplets (βx, a, b+ 1), (x2,2a,2b) et (αx, a+ 1, b) v´erifient la mˆeme relation.
Description de l’algorithme: On partitionne G en trois ensembles de mˆeme taille G=S1∪S2∪S3 et on d´efinit l’applicationf :hαi ×Z/nZ×Z/nZ→ hαi ×Z/nZ×Z/nZ par:
f((x, a, b)) =
(βx, a, b+ 1) si x∈S1 (x2,2a,2b) si x∈S2
(αx, a+ 1, b) si x∈S3
L’algorithme initialise le triplet (x0, a0, b0) `a (1,0,0) puis it`ere (xi, ai, bi) =f((xi−1, ai−1, bi−1)).
Pour chaqueila conditionx2i =xiest test´ee; si cette ´egalit´e est vraie et si (b2i−bi, n) = 1, alors c= logα(β) est calcul´e par la formule: c= (ai−a2i)(b2i−bi)−1 mod n.
2. D´eduire de la question 1 que pour tout i, (xi, ai, bi) v´erifie xi =αaiβbi.
3. Montrez que, si pour i < j, xj = xi, et si (bj −bi, n) = 1, alors c = (ai−aj)(bj −bi)−1 mod n.
4. Montrez que, si pouri < j, xj =xi, alors il existe s tel que xs =x2s avec s < j.
5. SoitG= (Z/pZ)∗ avec pun nombre premier. On propose de prendre pour S1, S2,S3, les trois classes de congruence modulo 3. Expliquez pourquoi on ne doit pas avoir 1 ∈S2. 6. On prend p = 47 et α = 2. Montrez que α est d’ordre 23. On cherche le log de 37 en
base α. Expliquez pourquoi le choix
S1 ={x∈[0. . .(p−1)] : x= 1 mod 3}
S2 ={x∈[0. . .(p−1)] : x= 0 mod 3}
S3 ={x∈[0. . .(p−1)] : x= 2 mod 3}
n’est pas satisfaisant en essayant de faire marcher l’algorithme. Faites-le ensuite fonction- ner pour
S1 ={x∈[0. . .(p−1)] :x= 2 mod 3}
S2 ={x∈[0. . .(p−1)] :x= 0 mod 3}
S3 ={x∈[0. . .(p−1)] :x= 1 mod 3}.
3 Le calcul d’index pour le log discret.
Soit p = 227. L’´el´ement α = 2 est primitif dans (Z/pZ)∗. La notation log d´esigne le log discret de base α dans (Z/pZ)∗.
1. Calculezα32,α40,α59etα156modulopet factorisez-les sur la base de facteurs{2,3,5,7,11}.
2. En d´eduire le calcul de log 3, log 5, log 7, log 11.
3. On veut calculer log 173. Multipliez 173 par le nombre “al´eatoire” 2177 mod p. Factorisez le r´esultat sur la base de facteurs puis calculez log 173 en utilisant les calculs pr´eliminaires des questions pr´ec´edentes.