Cours Presentation Azizi
Cours Presentation Azizi
Cours Presentation Azizi
Abdelmalek Azizi
12 février 2016
1 Introduction,
1 Introduction,
2 Généralités d’Arithmétique,
1 Introduction,
2 Généralités d’Arithmétique,
3 Tests de primalité,
1 Introduction,
2 Généralités d’Arithmétique,
3 Tests de primalité,
4 Méthode RSA,
1 Introduction,
2 Généralités d’Arithmétique,
3 Tests de primalité,
4 Méthode RSA,
5 Logarithme Discret, Diffie-Hellman et ElGamal,
1 Introduction,
2 Généralités d’Arithmétique,
3 Tests de primalité,
4 Méthode RSA,
5 Logarithme Discret, Diffie-Hellman et ElGamal,
6 Signatures et Attaques.
..
.
..
.
En particulier, on a :
En particulier, on a :
1 Le PGCD de a et b est le dernier reste non nul.
En particulier, on a :
1 Le PGCD de a et b est le dernier reste non nul.
2 Il existe u et v dans Z tels que a.u + b.v = rn et u et v se
calculent à l’aide des équations d’Euclide précédentes.
En particulier, on a :
1 Le PGCD de a et b est le dernier reste non nul.
2 Il existe u et v dans Z tels que a.u + b.v = rn et u et v se
calculent à l’aide des équations d’Euclide précédentes.
3 si a et b sont premiers entre eux, leurs PGCD est égal à 1 et on
obtient l’identité de Bezout :
En particulier, on a :
1 Le PGCD de a et b est le dernier reste non nul.
2 Il existe u et v dans Z tels que a.u + b.v = rn et u et v se
calculent à l’aide des équations d’Euclide précédentes.
3 si a et b sont premiers entre eux, leurs PGCD est égal à 1 et on
obtient l’identité de Bezout :
Il existe u et v dans Z tels que a.u + b.v = 1.
En particulier, on a :
1 Le PGCD de a et b est le dernier reste non nul.
2 Il existe u et v dans Z tels que a.u + b.v = rn et u et v se
calculent à l’aide des équations d’Euclide précédentes.
3 si a et b sont premiers entre eux, leurs PGCD est égal à 1 et on
obtient l’identité de Bezout :
Il existe u et v dans Z tels que a.u + b.v = 1.
4 Soient n un entier naturel supérieur à 2 et Z/nZ l’ensemble des
classes d’équivalences modulo n.
En particulier, on a :
1 Le PGCD de a et b est le dernier reste non nul.
2 Il existe u et v dans Z tels que a.u + b.v = rn et u et v se
calculent à l’aide des équations d’Euclide précédentes.
3 si a et b sont premiers entre eux, leurs PGCD est égal à 1 et on
obtient l’identité de Bezout :
Il existe u et v dans Z tels que a.u + b.v = 1.
4 Soient n un entier naturel supérieur à 2 et Z/nZ l’ensemble des
classes d’équivalences modulo n. Un entier a est inversible
modulo n si et seulement si a est premier avec n ;
En particulier, on a :
1 Le PGCD de a et b est le dernier reste non nul.
2 Il existe u et v dans Z tels que a.u + b.v = rn et u et v se
calculent à l’aide des équations d’Euclide précédentes.
3 si a et b sont premiers entre eux, leurs PGCD est égal à 1 et on
obtient l’identité de Bezout :
Il existe u et v dans Z tels que a.u + b.v = 1.
4 Soient n un entier naturel supérieur à 2 et Z/nZ l’ensemble des
classes d’équivalences modulo n. Un entier a est inversible
modulo n si et seulement si a est premier avec n ; ce qui est
équivalent d’après l’identité de Bezout à l’existence de u et v
dans Z tels que
a.u + n.v = 1.
En particulier, on a :
1 Le PGCD de a et b est le dernier reste non nul.
2 Il existe u et v dans Z tels que a.u + b.v = rn et u et v se
calculent à l’aide des équations d’Euclide précédentes.
3 si a et b sont premiers entre eux, leurs PGCD est égal à 1 et on
obtient l’identité de Bezout :
Il existe u et v dans Z tels que a.u + b.v = 1.
4 Soient n un entier naturel supérieur à 2 et Z/nZ l’ensemble des
classes d’équivalences modulo n. Un entier a est inversible
modulo n si et seulement si a est premier avec n ; ce qui est
équivalent d’après l’identité de Bezout à l’existence de u et v
dans Z tels que
a.u + n.v = 1.
Alors, on déduit de ce qui précède que u est l’inverse de a
modulo n.
Abdelmalek Azizi Tests de primalité, RSA, logarithme discret, Diffie-Hellman et El Gamal cl
Généralités d’Arithmétique
Théorème
Soient n un entier positif supérieur à 2, a un entier premier avec n et
φ(n) l’ordre du groupe Z∗n , alors on a :
et aφ(n) ≡ 1 mod n.
Théorème
Soient n un entier positif supérieur à 2, a un entier premier avec n et
φ(n) l’ordre du groupe Z∗n , alors on a :
et aφ(n) ≡ 1 mod n.
Théorème
Soient n un entier positif supérieur à 2, a un entier premier avec n et
φ(n) l’ordre du groupe Z∗n , alors on a :
et aφ(n) ≡ 1 mod n.
Théorème
Soient n un entier positif supérieur à 2, a un entier premier avec n et
φ(n) l’ordre du groupe Z∗n , alors on a :
et aφ(n) ≡ 1 mod n.
∀k ∈ Z, ak φ(n)+1 ≡ a mod n
Théorème
Soient n un entier positif supérieur à 2, a un entier premier avec n et
φ(n) l’ordre du groupe Z∗n , alors on a :
et aφ(n) ≡ 1 mod n.
∀k ∈ Z, ak φ(n)+1 ≡ a mod n
ii) ( ab a b
p ) = ( p )( p ) pour a et b quelconques dans IN.
2. Le symbole de Legendre a été généralisé, par Jacobi (1804 - 1851),
comme suit :
Le symbole de Jacobi ( na ) est défini par :
C’est le symbole de Legendre si n = p, un nombre premier impair ;
c’est lesymbole de Kronecker pour n = 2 :
1 si a ≡ 1 mod 8,
−1 si a ≡ 5 mod 8,
( a2 ) =
0 si a est divisible par 4,
et il n’est pas défini pour les autres valeurs de a.
ii) ( ab a b
p ) = ( p )( p ) pour a et b quelconques dans IN.
2. Le symbole de Legendre a été généralisé, par Jacobi (1804 - 1851),
comme suit :
Le symbole de Jacobi ( na ) est défini par :
C’est le symbole de Legendre si n = p, un nombre premier impair ;
c’est lesymbole de Kronecker pour n = 2 :
1 si a ≡ 1 mod 8,
−1 si a ≡ 5 mod 8,
( a2 ) =
0 si a est divisible par 4,
et il n’est pas défini pour les autres valeurs de a.
i =r i =r
a
Et si n = ∏ pim , alors ( na ) = ∏( pi )m .
i i
i =1 i =1
Critère de Fermat :
Corrolaire
Soit n < 1 un entier impair. Écrivons n − 1 = 2s .t avec t impair.
Supposons qu’il existe un entier a avec 1 < a < n, at 6≡ 1[mod n] et
i
a2 .t 6≡ −1[mod n] pour i = 0, 1, ..., s − 1. Alors n est composé.
(Appelons un tel entier a un témoin de Miller).
Corrolaire
Soit n < 1 un entier impair. Écrivons n − 1 = 2s .t avec t impair.
Supposons qu’il existe un entier a avec 1 < a < n, at 6≡ 1[mod n] et
i
a2 .t 6≡ −1[mod n] pour i = 0, 1, ..., s − 1. Alors n est composé.
(Appelons un tel entier a un témoin de Miller).
Corrolaire
Soit n < 1 un entier impair. Écrivons n − 1 = 2s .t avec t impair.
Supposons qu’il existe un entier a avec 1 < a < n, at 6≡ 1[mod n] et
i
a2 .t 6≡ −1[mod n] pour i = 0, 1, ..., s − 1. Alors n est composé.
(Appelons un tel entier a un témoin de Miller).
Corrolaire
Soit n < 1 un entier impair. Écrivons n − 1 = 2s .t avec t impair.
Supposons qu’il existe un entier a avec 1 < a < n, at 6≡ 1[mod n] et
i
a2 .t 6≡ −1[mod n] pour i = 0, 1, ..., s − 1. Alors n est composé.
(Appelons un tel entier a un témoin de Miller).
Remarque
Remarque
(1) Si n est premier, alors n passe le test de Rabin-Miller.
Remarque
(1) Si n est premier, alors n passe le test de Rabin-Miller. C’est
essentiellement le théorème de Fermat dans le corps (Z/nZ).
Remarque
(1) Si n est premier, alors n passe le test de Rabin-Miller. C’est
essentiellement le théorème de Fermat dans le corps (Z/nZ).
(2) Si le résultat (i) n’est pas vérifié, alors le théorème de Fermat n’est
pas vrai dans (Z/nZ)∗ , donc n n’est pas premier.
Remarque
(1) Si n est premier, alors n passe le test de Rabin-Miller. C’est
essentiellement le théorème de Fermat dans le corps (Z/nZ).
(2) Si le résultat (i) n’est pas vérifié, alors le théorème de Fermat n’est
pas vrai dans (Z/nZ)∗ , donc n n’est pas premier.
(3) Si le résultat (ii) n’est pas vérifié, c’est qu’il existe dans l’anneau
(Z/nZ) un élément u tel que u 6= ±1 et u 2 = 1, ce qui n’est pas
possible dans un corps, donc n n’est pas premier.
Remarque
(1) Si n est premier, alors n passe le test de Rabin-Miller. C’est
essentiellement le théorème de Fermat dans le corps (Z/nZ).
(2) Si le résultat (i) n’est pas vérifié, alors le théorème de Fermat n’est
pas vrai dans (Z/nZ)∗ , donc n n’est pas premier.
(3) Si le résultat (ii) n’est pas vérifié, c’est qu’il existe dans l’anneau
(Z/nZ) un élément u tel que u 6= ±1 et u 2 = 1, ce qui n’est pas
possible dans un corps, donc n n’est pas premier.
(4) Si n passe le test dans une base b, alors l’entier n est premier avec
une probabilité supérieure à 34 .
Remarque
(1) Si n est premier, alors n passe le test de Rabin-Miller. C’est
essentiellement le théorème de Fermat dans le corps (Z/nZ).
(2) Si le résultat (i) n’est pas vérifié, alors le théorème de Fermat n’est
pas vrai dans (Z/nZ)∗ , donc n n’est pas premier.
(3) Si le résultat (ii) n’est pas vérifié, c’est qu’il existe dans l’anneau
(Z/nZ) un élément u tel que u 6= ±1 et u 2 = 1, ce qui n’est pas
possible dans un corps, donc n n’est pas premier.
(4) Si n passe le test dans une base b, alors l’entier n est premier avec
une probabilité supérieure à 34 .
Remarque
(1) Si n est premier, alors n passe le test de Rabin-Miller. C’est
essentiellement le théorème de Fermat dans le corps (Z/nZ).
(2) Si le résultat (i) n’est pas vérifié, alors le théorème de Fermat n’est
pas vrai dans (Z/nZ)∗ , donc n n’est pas premier.
(3) Si le résultat (ii) n’est pas vérifié, c’est qu’il existe dans l’anneau
(Z/nZ) un élément u tel que u 6= ±1 et u 2 = 1, ce qui n’est pas
possible dans un corps, donc n n’est pas premier.
(4) Si n passe le test dans une base b, alors l’entier n est premier avec
une probabilité supérieure à 34 .
Remarque
(1) Si n est premier, alors n passe le test de Rabin-Miller. C’est
essentiellement le théorème de Fermat dans le corps (Z/nZ).
(2) Si le résultat (i) n’est pas vérifié, alors le théorème de Fermat n’est
pas vrai dans (Z/nZ)∗ , donc n n’est pas premier.
(3) Si le résultat (ii) n’est pas vérifié, c’est qu’il existe dans l’anneau
(Z/nZ) un élément u tel que u 6= ±1 et u 2 = 1, ce qui n’est pas
possible dans un corps, donc n n’est pas premier.
(4) Si n passe le test dans une base b, alors l’entier n est premier avec
une probabilité supérieure à 34 .
Théorème
(Critère de lehmer)
Théorème
(Critère de lehmer) Soit n > 1 un enter impair tel qu‘on connaît tous
les facteurs premiers de n − 1.
Théorème
(Critère de lehmer) Soit n > 1 un enter impair tel qu‘on connaît tous
les facteurs premiers de n − 1. Les conditions suivantes sont
équivalentes :
Théorème
(Critère de lehmer) Soit n > 1 un enter impair tel qu‘on connaît tous
les facteurs premiers de n − 1. Les conditions suivantes sont
équivalentes :
(i) n est premier.
Théorème
(Critère de lehmer) Soit n > 1 un enter impair tel qu‘on connaît tous
les facteurs premiers de n − 1. Les conditions suivantes sont
équivalentes :
(i) n est premier.
(ii) Il existe un entier a tel que an−1 ≡ 1[mod n] et a(n−1)/q 6≡ 1[mod n]
pour tout facteur premier q de n − 1.
Théorème
(Critère de lehmer) Soit n > 1 un enter impair tel qu‘on connaît tous
les facteurs premiers de n − 1. Les conditions suivantes sont
équivalentes :
(i) n est premier.
(ii) Il existe un entier a tel que an−1 ≡ 1[mod n] et a(n−1)/q 6≡ 1[mod n]
pour tout facteur premier q de n − 1.
Théorème
(Critère de lehmer) Soit n > 1 un enter impair tel qu‘on connaît tous
les facteurs premiers de n − 1. Les conditions suivantes sont
équivalentes :
(i) n est premier.
(ii) Il existe un entier a tel que an−1 ≡ 1[mod n] et a(n−1)/q 6≡ 1[mod n]
pour tout facteur premier q de n − 1.
Théorème
(Critère de lehmer) Soit n > 1 un enter impair tel qu‘on connaît tous
les facteurs premiers de n − 1. Les conditions suivantes sont
équivalentes :
(i) n est premier.
(ii) Il existe un entier a tel que an−1 ≡ 1[mod n] et a(n−1)/q 6≡ 1[mod n]
pour tout facteur premier q de n − 1.
L ES NOMBRES DE F ERMAT
L ES NOMBRES DE F ERMAT
n
Pour les nombres de Fermat Fn = 22 + 1, le critère de Lehmer
devient :
L ES NOMBRES DE F ERMAT
n
Pour les nombres de Fermat Fn = 22 + 1, le critère de Lehmer
devient :
Lemme
Pour que Fn soit premier, il faut et il suffit qu‘il existe a avec
L ES NOMBRES DE F ERMAT
n
Pour les nombres de Fermat Fn = 22 + 1, le critère de Lehmer
devient :
Lemme
Pour que Fn soit premier, il faut et il suffit qu‘il existe a avec
L ES NOMBRES DE F ERMAT
n
Pour les nombres de Fermat Fn = 22 + 1, le critère de Lehmer
devient :
Lemme
Pour que Fn soit premier, il faut et il suffit qu‘il existe a avec
Théorème
Pour n ≥ 1, on a : Fn est premier ⇔ 3(Fn −1)/2 ≡ −1(mod Fn ).
L ES NOMBRES DE M ERSENNE
L ES NOMBRES DE M ERSENNE
Théorème
(Théorème de Lucas-Lehmer sur les nombres de M ERSENNE)
Soient s un nombre premier impair, n = 2s − 1, a un entier tel que n
soit premier avec a2 − 4.
On définit par récurrence une suite d’entiers, (Li ) où i ≥ 1, dite suite
majeure de Lucas, comme suit : L1 = a, Li +1 = Li 2 − 2. Alors on a :
Ls−1 ≡ 0(mod n) ⇔ n est premier.
L’algorithme AKS
En 2002, Manindra Agrawal de l’Indian Institute of Technology à
Kanpur et deux de ses étudiants Neeraj Kayal et Nitin Saxena ont
trouvé un algorithme simple et polynômial qui teste la primalité de n.
L’algorithme AKS
En 2002, Manindra Agrawal de l’Indian Institute of Technology à
Kanpur et deux de ses étudiants Neeraj Kayal et Nitin Saxena ont
trouvé un algorithme simple et polynômial qui teste la primalité de n.
Ce dernier algorithme se base sur le petit théeorème de Fermat et
repose sur le résultat suivant,
L’algorithme AKS
En 2002, Manindra Agrawal de l’Indian Institute of Technology à
Kanpur et deux de ses étudiants Neeraj Kayal et Nitin Saxena ont
trouvé un algorithme simple et polynômial qui teste la primalité de n.
Ce dernier algorithme se base sur le petit théeorème de Fermat et
repose sur le résultat suivant, qui est une généralisation du petit
théorème de Fermat.
L’algorithme AKS
En 2002, Manindra Agrawal de l’Indian Institute of Technology à
Kanpur et deux de ses étudiants Neeraj Kayal et Nitin Saxena ont
trouvé un algorithme simple et polynômial qui teste la primalité de n.
Ce dernier algorithme se base sur le petit théeorème de Fermat et
repose sur le résultat suivant, qui est une généralisation du petit
théorème de Fermat.
Théorème
Soient n un entier naturel strictement supérieur à 2 et a un entier
relatif premier avec n. Alors n est premier si, et seulement si,
(X + a)n ≡ X n + a mod n.
L’algorithme AKS
En 2002, Manindra Agrawal de l’Indian Institute of Technology à
Kanpur et deux de ses étudiants Neeraj Kayal et Nitin Saxena ont
trouvé un algorithme simple et polynômial qui teste la primalité de n.
Ce dernier algorithme se base sur le petit théeorème de Fermat et
repose sur le résultat suivant, qui est une généralisation du petit
théorème de Fermat.
Théorème
Soient n un entier naturel strictement supérieur à 2 et a un entier
relatif premier avec n. Alors n est premier si, et seulement si,
(X + a)n ≡ X n + a mod n.
Pour gagner sur le temps de calcul l’idée c’est d’évaluer les deux
membres de la congruence modulo un polynôme de la forme X r − 1
pour un certain entier r plus petit que n.
Pour gagner sur le temps de calcul l’idée c’est d’évaluer les deux
membres de la congruence modulo un polynôme de la forme X r − 1
pour un certain entier r plus petit que n.
Ainsi l’algorithme de primalité AKS, qui est déterministe, polynômial et
inconditionnel ; est le suivant.
Pour gagner sur le temps de calcul l’idée c’est d’évaluer les deux
membres de la congruence modulo un polynôme de la forme X r − 1
pour un certain entier r plus petit que n.
Ainsi l’algorithme de primalité AKS, qui est déterministe, polynômial et
inconditionnel ; est le suivant.
Soit n un entier supérieur ou égal à 2.
Pour gagner sur le temps de calcul l’idée c’est d’évaluer les deux
membres de la congruence modulo un polynôme de la forme X r − 1
pour un certain entier r plus petit que n.
Ainsi l’algorithme de primalité AKS, qui est déterministe, polynômial et
inconditionnel ; est le suivant.
Soit n un entier supérieur ou égal à 2.
1. Si n = ab pour a et b deux entiers tels que b > 1, alors n est
Composé.
Pour gagner sur le temps de calcul l’idée c’est d’évaluer les deux
membres de la congruence modulo un polynôme de la forme X r − 1
pour un certain entier r plus petit que n.
Ainsi l’algorithme de primalité AKS, qui est déterministe, polynômial et
inconditionnel ; est le suivant.
Soit n un entier supérieur ou égal à 2.
1. Si n = ab pour a et b deux entiers tels que b > 1, alors n est
Composé.
2. Déterminer le plus petit entier r tel que l’ordre de n dans Z /rZ soit
supérieur à 4log (n)2 .
Pour gagner sur le temps de calcul l’idée c’est d’évaluer les deux
membres de la congruence modulo un polynôme de la forme X r − 1
pour un certain entier r plus petit que n.
Ainsi l’algorithme de primalité AKS, qui est déterministe, polynômial et
inconditionnel ; est le suivant.
Soit n un entier supérieur ou égal à 2.
1. Si n = ab pour a et b deux entiers tels que b > 1, alors n est
Composé.
2. Déterminer le plus petit entier r tel que l’ordre de n dans Z /rZ soit
supérieur à 4log (n)2 .
3. Si 1 < pdcd (a, n) < n pour un entier a ≤ r , alors n est Composé.
Pour gagner sur le temps de calcul l’idée c’est d’évaluer les deux
membres de la congruence modulo un polynôme de la forme X r − 1
pour un certain entier r plus petit que n.
Ainsi l’algorithme de primalité AKS, qui est déterministe, polynômial et
inconditionnel ; est le suivant.
Soit n un entier supérieur ou égal à 2.
1. Si n = ab pour a et b deux entiers tels que b > 1, alors n est
Composé.
2. Déterminer le plus petit entier r tel que l’ordre de n dans Z /rZ soit
supérieur à 4log (n)2 .
3. Si 1 < pdcd (a, n) < n pour un entier a ≤ r , alors n est Composé.
4. Si n ≤ r , alors n est Premier.
Pour gagner sur le temps de calcul l’idée c’est d’évaluer les deux
membres de la congruence modulo un polynôme de la forme X r − 1
pour un certain entier r plus petit que n.
Ainsi l’algorithme de primalité AKS, qui est déterministe, polynômial et
inconditionnel ; est le suivant.
Soit n un entier supérieur ou égal à 2.
1. Si n = ab pour a et b deux entiers tels que b > 1, alors n est
Composé.
2. Déterminer le plus petit entier r tel que l’ordre de n dans Z /rZ soit
supérieur à 4log (n)2 .
3. Si 1 < pdcd (a, n) < n pour un entier a ≤ r , alors n est Composé.
4. Si n ≤ r , alors np
est Premier.
5. Pour a = 1 à b2 φ(r )log (n)c : si (X + a)n 6≡ X n + a dans
Z /nZ [X ]/(X r − 1)Z /nZ [X ] , alors n est Composé.
Pour gagner sur le temps de calcul l’idée c’est d’évaluer les deux
membres de la congruence modulo un polynôme de la forme X r − 1
pour un certain entier r plus petit que n.
Ainsi l’algorithme de primalité AKS, qui est déterministe, polynômial et
inconditionnel ; est le suivant.
Soit n un entier supérieur ou égal à 2.
1. Si n = ab pour a et b deux entiers tels que b > 1, alors n est
Composé.
2. Déterminer le plus petit entier r tel que l’ordre de n dans Z /rZ soit
supérieur à 4log (n)2 .
3. Si 1 < pdcd (a, n) < n pour un entier a ≤ r , alors n est Composé.
4. Si n ≤ r , alors np
est Premier.
5. Pour a = 1 à b2 φ(r )log (n)c : si (X + a)n 6≡ X n + a dans
Z /nZ [X ]/(X r − 1)Z /nZ [X ] , alors n est Composé.
6. Autrement n est Premier.
Soit une personne X. Cette personne doit avoir une clé publique qui
n’est rien d’autre que deux entiers nX et sX vérifiant les conditions
suivantes :
Soit une personne X. Cette personne doit avoir une clé publique qui
n’est rien d’autre que deux entiers nX et sX vérifiant les conditions
suivantes :
i. nX = pq où p et q sont des nombres premiers,
Soit une personne X. Cette personne doit avoir une clé publique qui
n’est rien d’autre que deux entiers nX et sX vérifiant les conditions
suivantes :
i. nX = pq où p et q sont des nombres premiers,
ii. p et q sont gardés secrets par chacun,
Soit une personne X. Cette personne doit avoir une clé publique qui
n’est rien d’autre que deux entiers nX et sX vérifiant les conditions
suivantes :
i. nX = pq où p et q sont des nombres premiers,
ii. p et q sont gardés secrets par chacun,
iii. l’entier sX est premier avec l’entier (p − 1)(q − 1). Par suite il existe
tX tel que
Soit une personne X. Cette personne doit avoir une clé publique qui
n’est rien d’autre que deux entiers nX et sX vérifiant les conditions
suivantes :
i. nX = pq où p et q sont des nombres premiers,
ii. p et q sont gardés secrets par chacun,
iii. l’entier sX est premier avec l’entier (p − 1)(q − 1). Par suite il existe
tX tel que
Soit une personne X. Cette personne doit avoir une clé publique qui
n’est rien d’autre que deux entiers nX et sX vérifiant les conditions
suivantes :
i. nX = pq où p et q sont des nombres premiers,
ii. p et q sont gardés secrets par chacun,
iii. l’entier sX est premier avec l’entier (p − 1)(q − 1). Par suite il existe
tX tel que
Soit une personne X. Cette personne doit avoir une clé publique qui
n’est rien d’autre que deux entiers nX et sX vérifiant les conditions
suivantes :
i. nX = pq où p et q sont des nombres premiers,
ii. p et q sont gardés secrets par chacun,
iii. l’entier sX est premier avec l’entier (p − 1)(q − 1). Par suite il existe
tX tel que
Soit une personne X. Cette personne doit avoir une clé publique qui
n’est rien d’autre que deux entiers nX et sX vérifiant les conditions
suivantes :
i. nX = pq où p et q sont des nombres premiers,
ii. p et q sont gardés secrets par chacun,
iii. l’entier sX est premier avec l’entier (p − 1)(q − 1). Par suite il existe
tX tel que
Remarques
1. Les nombres premiers p et q doivent être bien choisies : ils doivent
être très grands, et leurs différence doit être grande car sinon ils
√
seront proches de nX et donc faciles à trouver.
Remarques
1. Les nombres premiers p et q doivent être bien choisies : ils doivent
être très grands, et leurs différence doit être grande car sinon ils
√
seront proches de nX et donc faciles à trouver.
2. Exercice. Soient A et B deux personnes qui veulent s’échanger des
messages à l’aide de la méthode RSA et E un espion. On désigne par
(sx , nx ) la clè publique d’une personne X et tx sa clé privée :
Remarques
1. Les nombres premiers p et q doivent être bien choisies : ils doivent
être très grands, et leurs différence doit être grande car sinon ils
√
seront proches de nX et donc faciles à trouver.
2. Exercice. Soient A et B deux personnes qui veulent s’échanger des
messages à l’aide de la méthode RSA et E un espion. On désigne par
(sx , nx ) la clè publique d’une personne X et tx sa clé privée :
i. On suppose que E a pu trouver φ(na ), vérifiez qu’il peut déterminer
la décomposition de na .
Remarques
1. Les nombres premiers p et q doivent être bien choisies : ils doivent
être très grands, et leurs différence doit être grande car sinon ils
√
seront proches de nX et donc faciles à trouver.
2. Exercice. Soient A et B deux personnes qui veulent s’échanger des
messages à l’aide de la méthode RSA et E un espion. On désigne par
(sx , nx ) la clè publique d’une personne X et tx sa clé privée :
i. On suppose que E a pu trouver φ(na ), vérifiez qu’il peut déterminer
la décomposition de na .
ii. On suppose que E a pu remarquer qu’un message m a été envoyé à
A et à B et que na = nb et ea et eb sont premiers entre eux ; vérifiez
que E peut trouver le message m.
Remarques
1. Les nombres premiers p et q doivent être bien choisies : ils doivent
être très grands, et leurs différence doit être grande car sinon ils
√
seront proches de nX et donc faciles à trouver.
2. Exercice. Soient A et B deux personnes qui veulent s’échanger des
messages à l’aide de la méthode RSA et E un espion. On désigne par
(sx , nx ) la clè publique d’une personne X et tx sa clé privée :
i. On suppose que E a pu trouver φ(na ), vérifiez qu’il peut déterminer
la décomposition de na .
ii. On suppose que E a pu remarquer qu’un message m a été envoyé à
A et à B et que na = nb et ea et eb sont premiers entre eux ; vérifiez
que E peut trouver le message m.
iii. On suppose cette fois ci qu’une société a envoyé un message m
aux trois personnes A, B et C et que l’espion E s’aperçoit que
ea = eb = ec = 3 et que na , nb , et nc sont premiers entre eux deux à
deux. On suppose que m < nx pour x = a, b et c ; montrer comment E
peut déterminer le message m.Azizi
Abdelmalek Tests de primalité, RSA, logarithme discret, Diffie-Hellman et El Gamal cl
Logarithme discret
dlogg (h) = m.
dlogg (h) = m.
Remarque
Le groupe G = (Z /pZ ) muni de la somme est un groupe où le
problème du logarithme discret est facile à résoudre
Remarque
Le groupe G = (Z /pZ ) muni de la somme est un groupe où le
problème du logarithme discret est facile à résoudre tandis que Le
groupe G = (Z /pZ )∗ muni de la multiplication est un groupe où le
problème du logarithme discret est difficile à résoudre si le nombre
premier p est trés grand et est bien choisi.
m = g p−1−xy c = g p−1−xy g xy m.
Remarques
1. Tout ce qui précède reste vrais pour un groupe cyclique fini G
quelconque. La sécurité de ce système de cryptage est basée sur la
difficulté de résoudre le problème de Diffie-Hellman.
Remarques
1. Tout ce qui précède reste vrais pour un groupe cyclique fini G
quelconque. La sécurité de ce système de cryptage est basée sur la
difficulté de résoudre le problème de Diffie-Hellman.
2. Il est clair que casser le protocol d’échange de clés de
Diffie-Hellman c’est casser le cryptosystème d’ElGamal.
Remarques
1. Tout ce qui précède reste vrais pour un groupe cyclique fini G
quelconque. La sécurité de ce système de cryptage est basée sur la
difficulté de résoudre le problème de Diffie-Hellman.
2. Il est clair que casser le protocol d’échange de clés de
Diffie-Hellman c’est casser le cryptosystème d’ElGamal.
Inversement, si on sait casser le cryptosystème d’ElGamal, c’est qu’on
sait déchiffrer tout message chiffré par la méthode d’ElGamal, en
particulier si le message chiffré est c = 1 alors de l’égalité 1 = g xy m,
on trouve que la clé est g xy = m−1 .
Remarques
1. Tout ce qui précède reste vrais pour un groupe cyclique fini G
quelconque. La sécurité de ce système de cryptage est basée sur la
difficulté de résoudre le problème de Diffie-Hellman.
2. Il est clair que casser le protocol d’échange de clés de
Diffie-Hellman c’est casser le cryptosystème d’ElGamal.
Inversement, si on sait casser le cryptosystème d’ElGamal, c’est qu’on
sait déchiffrer tout message chiffré par la méthode d’ElGamal, en
particulier si le message chiffré est c = 1 alors de l’égalité 1 = g xy m,
on trouve que la clé est g xy = m−1 .
3. Pour le cryptosystème d’ElGamal dans le cas d’un groupe cyclique
quelconque on représente un message m par un élément gm du
groupe et le message chiffré est c = K .gm . Une question qui se pose,
c’est comment représenter le message m par l’élément gm ?
La signature RSA
La signature RSA
Soient n = pq, c l’exposant de chiffrèrent et d celui de déchiffrement
qui est la clé privé.
La signature RSA
Soient n = pq, c l’exposant de chiffrèrent et d celui de déchiffrement
qui est la clé privé. Pour signer un message m ∈ Z /nZ , Alice calcule
la fonction S (m) = md mod n et la fonction de vérification associée
est V (m; s) = vrai si m = sc mod n et faux dans le cas contraire.
Abdelmalek Azizi Tests de primalité, RSA, logarithme discret, Diffie-Hellman et El Gamal cl
Signature et vérification
La signature El Gamal
Soient p un grand nombre premier, g un générateur de (Z /pZ )∗ , a un
entier compris entre 0 et p − 2 et A = g a .
La signature El Gamal
Soient p un grand nombre premier, g un générateur de (Z /pZ )∗ , a un
entier compris entre 0 et p − 2 et A = g a .
Alice publie p ; g et A.
La signature El Gamal
Soient p un grand nombre premier, g un générateur de (Z /pZ )∗ , a un
entier compris entre 0 et p − 2 et A = g a .
Alice publie p ; g et A. Pour un k ∈ (Z /(p − 1)Z )∗ on définit la fonction
de signature par :
La signature El Gamal
Soient p un grand nombre premier, g un générateur de (Z /pZ )∗ , a un
entier compris entre 0 et p − 2 et A = g a .
Alice publie p ; g et A. Pour un k ∈ (Z /(p − 1)Z )∗ on définit la fonction
de signature par :
sig (m) = (K ; S ) où K = g k mod p et S = (m − aK )k −1 mod p − 1,
La signature El Gamal
Soient p un grand nombre premier, g un générateur de (Z /pZ )∗ , a un
entier compris entre 0 et p − 2 et A = g a .
Alice publie p ; g et A. Pour un k ∈ (Z /(p − 1)Z )∗ on définit la fonction
de signature par :
sig (m) = (K ; S ) où K = g k mod p et S = (m − aK )k −1 mod p − 1, et
la fonction de vérification par :
La signature El Gamal
Soient p un grand nombre premier, g un générateur de (Z /pZ )∗ , a un
entier compris entre 0 et p − 2 et A = g a .
Alice publie p ; g et A. Pour un k ∈ (Z /(p − 1)Z )∗ on définit la fonction
de signature par :
sig (m) = (K ; S ) où K = g k mod p et S = (m − aK )k −1 mod p − 1, et
la fonction de vérification par :
V (m; K ; S ) = vrai si et seulement si AK K S = g m mod p.
La signature El Gamal
Soient p un grand nombre premier, g un générateur de (Z /pZ )∗ , a un
entier compris entre 0 et p − 2 et A = g a .
Alice publie p ; g et A. Pour un k ∈ (Z /(p − 1)Z )∗ on définit la fonction
de signature par :
sig (m) = (K ; S ) où K = g k mod p et S = (m − aK )k −1 mod p − 1, et
la fonction de vérification par :
V (m; K ; S ) = vrai si et seulement si AK K S = g m mod p. Cette
fonction de vérification permet bien d’authentifier toute signature :
La signature El Gamal
Soient p un grand nombre premier, g un générateur de (Z /pZ )∗ , a un
entier compris entre 0 et p − 2 et A = g a .
Alice publie p ; g et A. Pour un k ∈ (Z /(p − 1)Z )∗ on définit la fonction
de signature par :
sig (m) = (K ; S ) où K = g k mod p et S = (m − aK )k −1 mod p − 1, et
la fonction de vérification par :
V (m; K ; S ) = vrai si et seulement si AK K S = g m mod p. Cette
fonction de vérification permet bien d’authentifier toute signature :
Dans Z /pZ on a K S = g kS = g m−aK puisque g p−1 = 1 et AK = g aK
donc AK K S = g m mod p.
j α−1 j −1
g xj p +...+xα−1 p = hg −x0 +...+−xj −1 p = h1 .
En élevant la dernière équation à la puissance pα−j −1 ; on trouve que
xj est le logarithme discret de l’élément
j −1
Abdelmalek Azizi pα−Tests de primalité, RSA, logarithme discret, Diffie-Hellman et El Gamal cl
Attaques du logarithme discret
Si βi0 − βj0 mod n n’est pas inversible, alors il faut recommencer avec
un autre élément u0 .
Si βi0 − βj0 mod n n’est pas inversible, alors il faut recommencer avec
un autre élément u0 .
On peut montrer que si on itère une fonction aléatoire de G dans G, le
√
temps moyen de parcourir un cycle (collision) est en O( n) ; en effet,
si F est une fonction uniformément aléatoire, les éléments u0 ;
u1 = F (u0 ), ... forment une suite aléatoire uniformément distribuée
dans G jusqu’à la première collision.