La Naissance de la Cryptographie Asymétrique - PolSys

Download Report

Transcript La Naissance de la Cryptographie Asymétrique - PolSys

´
La Naissance de la Cryptographie Asymetrique
´ el
¨ Renault
Guena
POLSYS - LIP6/UPMC/INRIA
´
12 fevrier
2014
Part I
´
´
´ a`
Problematique
: L’echange
des cles
l’essor de l’informatique
UPMC - Licence Info - Crypto - 2012/13
2/28
´
L’informatique et ses reseaux
de communication se
mettent en place
1950 Les premiers ordinateurs commerciaux, cryptographie
´ sur la taille des cles,
´ Theorie
´
basee
de Shannon.
´
´
1970 Reseaux
numeriques,
standardisation du DES (chiffrement
´
symetrique)
par la NSA
1970 L’ordinateur devient un outil pour toutes les entreprises
`
´
´
Probleme
: l’echange
des cles
UPMC - Licence Info - Crypto - 2012/13
3/28
´
Problematique
´
´ a` gerer
´
´
Un nombre enorme
de cles
et echanger
!
Bob
Alice
Henry
Fred
Gil
Eve
Ines
Dan
Jean
Carl
Ken
´
´
+Il faut un moyen sur
chaque cle´ au prealable
!
ˆ d’echanger
UPMC - Licence Info - Crypto - 2012/13
4/28
Directions !in Cryptogra
´
Echanger
une cle´ sans jamais New
se rencontrer
Invited
´
+En 1976, Diffie, Hellman et Merkle publient le premier
schPaper
ema
de
´
´ a` l’aide de la notion de cl
´
d’echange
de cles
e
publique
qu’ils
Whitfield Diffie and Martin E. Hellm
´
`
enonc
erent.
Abstract Two kinds of contemporary developments in cryptography are examined. Widening applications of teleprocessing have given rise to a need for new types of cryptographic
systems, which minimize the need for secure key distribution
channels and supply the equivalent of a written signature. This
paper suggests ways to solve these currently open problems.
It also discusses how the theories of communication and computation are beginning to provide the tools to solve cryptographic
problems of long standing.
1 INTRODUCTION
We stand today on the brink of a revolution in cryptography.
The development of cheap digital hardware has freed it from
the design limitations of mechanical computing and brought
the cost of high grade cryptographic devices down to where
UPMC - Licence Info - Crypto - 2012/13
communications o
raphy to insure pri
communicating pa
one else. This is do
secure channel su
private conversatio
tance is a common
unrealistic to expe
long enough for ke
The cost and dela
is a major barrier
to large teleproces
Section III prop
information over p
mising the security
enciphering and d
and D, such that5/28
co
´
Echanger
une cle´ sans jamais se rencontrer !
´ ement
´
Soit p un premier et g un el
de Z/pZ bien choisi. Ces deux
´ ements
´
ˆ
el
sont connus de tous. Les entiers a et b doivent etre
tenus
secrets
´
´
+Necessite
deux transactions sur un canal non securis
e´ pour
´
l’echange
de la cle´ commune K .
UPMC - Licence Info - Crypto - 2012/13
5/28
Cout
ˆ de la mise en pratique (cryptographie)
´ ont a` calculer 4 exponentiations mod p.
+En tout, les deux entites
En utilisant un algorithme d’exponentiation modulaire rapide (voir
´ edent),
´
´
cours prec
le cout
de la taille du module p.
ˆ total depend
´
Complexite´ echange
de cle´ par Diffie-Hellman
´
Si l’on souhaite echanger
une cle´ de taille ` il faudra faire
O(4 log3 (`))
´
operations
binaires.
UPMC - Licence Info - Crypto - 2012/13
6/28
´
´
Securit
e´ de cette echange
(cryptanalyse)
Etant donne´ y = ex ∈ R
Il est facile de calculer x (il suffit de calculer un log dans R)
UPMC - Licence Info - Crypto - 2012/13
7/28
´
´
Securit
e´ de cette echange
(cryptanalyse)
´ erateur
´
Etant donne´ 192 = g x mod 449 (g = 3 gen
du groupe
cyclique)
Il est difficile de calculer x
UPMC - Licence Info - Crypto - 2012/13
7/28
´
´
Securit
e´ de cette echange
(cryptanalyse)
´ erteur
´
Etant donne´ 192 = g x mod 449 (g = 3 gen
du groupe cyclique)
Il est difficile de calculer x
`
+Il s’agit du probleme
du calcul du logarithme discret (DLP).
UPMC - Licence Info - Crypto - 2012/13
7/28
Part II
´ eralit
´
Le DLP en toute gen
e´
UPMC - Licence Info - Crypto - 2012/13
8/28
´ erale
´
Le DLP : vision gen
´
Definition
`
Soit (G, ◦) un groupe fini et g ∈ G. Le probleme
du logarithme discret
´
(note´ DLP) dans le sous-groupe H = hgi de G est defini
comme suit:
´
Etant
donne´ h ∈ H
Comment retrouver k ∈ N tel que h = g ◦ · · · ◦ g (k fois) ?
Notations
´
Pour g ∈ G et t ∈ N on notera l’operation
d’exponentiation de g en t
par :
[t]g = g ◦ · · · ◦ g, t fois
´ eraliser
´
On peut gen
a` t ∈ Z en posant [−t]g l’inverse de [t]g.
UPMC - Licence Info - Crypto - 2012/13
9/28
´ erale
´
Le DLP : vision gen
´
Definition
`
Soit (G, ◦) un groupe fini et g ∈ G. Le probleme
du logarithme discret
´
(note´ DLP) dans le sous-groupe H = hgi de G est defini
comme suit:
´
Etant
donne´ h ∈ H
Comment retrouver k ∈ N tel que h = g ◦ · · · ◦ g (k fois) ?
Notations

´
Pour g ∈ G et t ∈ N on notera l’operation
d’exponentiation de g en t
´ eiser
´
par [t]g = g ◦ · · · ◦ g, t fois. Cette notations permet d’homogen
les notations, par exemple :
Si (G, ×) on a [t]g = g × · · · × g = g t
Si (G, +) on a [t]g = g + · · · + g = t · g
UPMC - Licence Info - Crypto - 2012/13
9/28
´ erale
´
Le DLP : vision gen
´
Definition
`
Soit (G, ◦) un groupe fini et g ∈ G. Le probleme
du logarithme discret
´
(note´ DLP) dans le sous-groupe H = hgi de G est defini
comme suit:
´
Etant
donne´ h ∈ H
Comment retrouver k ∈ N tel que h = g ◦ · · · ◦ g (k fois) ?
´
Definition
´
Le logarithme discret en base g de h est defini
par
k = logg (h) avec h = [k ]g
UPMC - Licence Info - Crypto - 2012/13
9/28
Part III
´
´ eralit
´
Resolution
du DLP en toute gen
e´
UPMC - Licence Info - Crypto - 2012/13
10/28
Brute force attack
´
Problematique
´
´ :
Etant
donnes
un groupe fini cyclique H = hgi dans lequel on peut calculer
facilement;
´ ement
´
un el
h dans H.
On cherche un entier t tel que h = [t]g.
+On peut se limiter a` t ∈ {1, . . . , #H}.
Recherche exhaustive
´
On testera 2log(#H) valeurs de t differentes.
´
du DLP s’exprime en
 La complexite´ de resolution
fonction de la taille de #H (la taille en bit du
groupe H)
UPMC - Licence Info - Crypto - 2012/13
11/28
Exemples ou le DLP est facile
Groupe additif modulaire
Ici H = (Z/nZ, +) le groupe modulaire additif. On a H = hgi et donc
pgcd(g, n) = 1.
Groupe additif : h = [t]g = t · g mod n
Ici on peut calculer facilement logg (h).
´
Preuve de la resolution
du DLP dans ce cas
1
´
pgcd(g, n) = 1 ⇒ on peut calculer g −1 mod n par Bezout
2
on retrouve t facilement : logg (h) = h · g −1 mod n
La complexite´ binaire de cette attaque est quadratique en la taille de n
(qui est bien la taille de #H).
´
+Pour resoudre
facilement un DLP, on peut essayer de se ramener a`
cet exemple.
UPMC - Licence Info - Crypto - 2012/13
12/28
´
Resolution
du DLP par transfert additif
Transfert additif
Soit H le groupe cyclique choisi pour support au DLP. Il faut pour un tel
transfert:
Isomorphisme entre H et Z/|H|Z
qu’il soit explicite
et que l’on puisse calculer efficacement l’image/image inverse
´ ement
´
d’un el
par ce dernier
Le DLP sera facile dans H si l’on connait un tel isomorphisme. (On
`
´
ˆ
envoie le probleme
dans Z/nZ avec l’isomorphisme, on le resout
grace
´
´
ˆ a`
a` Bezout
et on remonte le resultat
dans H toujours grace
l’isomorphisme.)
UPMC - Licence Info - Crypto - 2012/13
13/28
´ erique
´
Complexite´ gen
´
Definition
´ erique
´
On appelle groupe gen
(ou en boite noire) un groupe dont on ne
´
connaˆıt pas la structure mais avec lequel on peut realiser
des calculs.
´ en boite noire, tous
En particulier, si (H = hhi, ◦) et h ∈ H sont donnes
les calculs de la forme
[a]h ◦ [b]g
´
´
sont possibles et on peut tester les egalit
es.
´ eme
`
Theor
[Shoup 97]
´
´ erique
´
´
La resolution
du DLP dans un groupe gen
necessite
au moins
p
´
|H| operations
dans H
´ erique?
´
Existe-t-il un algorithme optimal dans le cas gen
+Simplification : connaissance de n = |H|.
UPMC - Licence Info - Crypto - 2012/13
14/28
´ gen
´ erale
´
Baby-Step Giant-Step de Shanks : idee
Soit n l’ordre du groupe H = hgi et h ∈ H.
´
+l’entier t = logg (h) verifie
1 < t < n.
√
Division euclidienne par s = b nc + 1;
t = q·s+r avec 0 6 q, r < s
Recherche exhaustive sur q et r d’une collision
h = [t]g = [q ·s +r ]g ⇒ h ◦[−q ·s]g = [r ]g et h ◦[−r ]g = [q ·s]g
UPMC - Licence Info - Crypto - 2012/13
15/28
´ dans (Z/77Z, +) avec g = 2 et h = 11
BSGS : imagee
h
g
e
UPMC - Licence Info - Crypto - 2012/13
16/28
´ dans (Z/77Z, +) avec g = 2 et h = 11
BSGS : imagee
h
9 8
76
UPMC - Licence Info - Crypto - 2012/13
5
4
3
2
1
g
e
16/28
´ dans (Z/77Z, +) avec g = 2 et h = 11
BSGS : imagee
h
9 8
76
5
4
3
2
1
g
e
[−1 · s]g ◦ h
[−2 · s]g ◦ h
UPMC - Licence Info - Crypto - 2012/13
16/28
´ dans (Z/77Z, +) avec g = 2 et h = 11
BSGS : imagee
[−4 · s]g ◦ h
h
9 8
76
[−3 · s]g ◦ h
5
4
3
2
1
g
e
[−1 · s]g ◦ h
UPMC - Licence Info - Crypto - 2012/13
16/28
BSGS : deux tableaux
´ erateur
´
Input : Le gen
g du groupe H d’ordre n et h ∈ H \ {e}.
Output : Un entier 0 < t < n tel que h = [t]g.
√
s := b nc + 1;
for i := 1 to s do
BS[i] := [i]g; // Tableau de Baby-Steps
GS[i] := [i]([−s]g) ◦ h; // Tableau de Giant-Steps
end for;
//Recherche Collision
T := Sort(BS cat GS);
for i := 1 to s do
if T [i] == T [i + 1] then break end if;
end for;
return s× Index(T [i],GS) + Index(T [i],BS)
UPMC - Licence Info - Crypto - 2012/13
17/28
BSGS : table de hachage
´ erateur
´
Input : Le gen
g du groupe H d’ordre n et h ∈ H \ {e}.
Output : Un entier 0 < t < n tel que h = [t]g.
√
s := b nc + 1;
for i := 1 to s do
Hash[[i]g] := i; // Table de hachage des Baby-Steps
end for;
i := 0; γ := h;
while true do //Giant-Steps
if not(Hash[γ] == NULL) then
return i × s+ Hash[γ];
else
i := i + 1
γ := γ ◦ [−s]g
end if
end while
UPMC - Licence Info - Crypto - 2012/13
18/28
´
BSGS : complexites
´ en fonction de log(#H) = log(n)
+Complexite´ donnee
Deux tableaux vs Table de hachage
√
√
1
Complexite´ calcul : O( nlog( n)) = O(2 2 log(n) log(n)) vs
1
O(2 2 log(n) )
√
´
Complexite´ memoire
: O( n)
Remarques
´ erique
´
Le premier algorithme gen
de complexite´ optimale
√
´
´
Necessite
une place memoire
de taille n pour la table de
hachage
´
Necessite
la connaissance de n = |H| mais on peut s’en passer
Ils existent des variantes de cet algorithme qui permettent de
´
descendre la complexite´ en memoire
mais pas en calcul (rho de
Pollard en particulier)
UPMC - Licence Info - Crypto - 2012/13
19/28
´ erique
´
Conclusion : complexite´ DLP groupe gen
+Le BSGS est optimal !
´
´
+De plus, on peut utiliser la decompositon
de n pour resoudre
encore
´ sur le CRT, voir plus loin).
plus efficacement (attaque basee
Pohlig-Hellman
´ erique
´
Dans le cas d’un groupe gen
H d’ordre
= p1e1 p2e2 · · · pkek il est
P n√
´
possible de resoudre
le DLP dans H en O( ei pi ) calculs dans G.
Corollaire important
Si l’on souhaite que le DLP soit difficile, il faut choisir un groupe H
´
` grand facteur premier.
d’ordre possedant
au moins un tres
UPMC - Licence Info - Crypto - 2012/13
20/28
Part IV
DLP sur les corps finis
UPMC - Licence Info - Crypto - 2012/13
21/28
´
Corps premiers et corps finis : Definitions
Corps premiers
` l’etude
´
D’apres
que nous avons faite sur les quotients F = Z/NZ; nous
savons que lorsque N est premier alors F est un corps.
On les appelle les corps premiers et on les note Fp = Z/pZ (tous les
corps finis de cardinal un nombre premier p sont isomorphes a` Fp ).
Corps Finis
Nous verrons, plus loin dans le cours, qu’il est toujours possible de
´ Fq des
` que q est une
construire des corps de cardinal fini q notes
k
puissance q = p d’un nombre premier p. Ils sont construits a` partir
des corps premiers.
´
L’entier p est appele´ caracteristique
du corps fini Fq .
` lecture,
+Dans tout ce qui suit, on pourra, dans une premiere
remplacer Fpk par Fp (k = 1).
UPMC - Licence Info - Crypto - 2012/13
22/28
´ es
´
Corps premiers et corps finis : Propriet
Groupe multiplicatif d’un corps fini
L’ensemble F×
des inversibles de Fpk muni de la multiplication est un
pk
groupe. Il est d’ordre pk − 1.
´ erateur
´
Groupe cyclique et son gen
Le groupe F×
est cyclique. Il existe donc α ∈ F×
tel que αi 6= 1 pour
pk
pk
´
tout 0 < i < pk − 1 et verifiant
hαi = {1 = α0 , α1 , α2 , . . . , αp
k −1
= 1} = F×
.
pk
´ ement
´
´ ement
´
Un tel el
α est appele´ el
primitif du corps Fpk .
UPMC - Licence Info - Crypto - 2012/13
23/28
´ ements
´
´ es
´
El
primitifs : Propriet
Fermat et Euler
Soit p un entier premier. On a ap−1 = 1 mod p pour tout entier a non
´ eralement
´
nul. Et plus gen
aϕ(n) = 1 mod n pour tout a premier avec n.
´ eralisation
´
´ eme
`
Gen
(Corollaire du theor
de Lagrange)
´ ement
´
Pour tout el
a d’un groupe G de cardinal m (appele´ aussi ordre)
´ ement
´
et d’el
neutre e, comme l’ordre de a est un diviseur de m, on a
[m]a = e
` partir de ce resultat
´
+A
on obtient facilement ceux de Fermat et Euler
UPMC - Licence Info - Crypto - 2012/13
24/28
´ ements
´
´ es
´
El
primitifs : Propriet
´ eralisation
´
´ eme
`
Gen
(Corollaire du theor
de Lagrange)
´ ement
´
Pour tout el
a d’un groupe G de cardinal m (appele´ aussi ordre)
´ ement
´
et d’el
neutre e, comme l’ordre de a est un diviseur de m, on a
[m]a = e
´ es
´ el
´ ement
´
Corollaires Lagrange (voir TD) : propriet
primitif
´ ement
´
Soit a un el
non nul d’un corps fini Fpk
Si a n’est pas primitif alors il existe d un diviseur de pk − 1 tel que
ad = 1
ˆ
Si a est primitif il en est de meme
pour ai avec i premier avec
pk − 1.
´ ements
´
Il existe donc ϕ(pk − 1) el
primitifs distincts dans Fpk
UPMC - Licence Info - Crypto - 2012/13
24/28
Corps finis et DLP
Exemple important en Crypto : DLP sur Fpk
G est le groupe multiplicatif d’un corps fini Fpk .
G = F×
est cyclique (on peut donc prendre G = H).
pk
´ edent
´
Exponentiation modulaire efficace (voir cours prec
et
TD/TME)
Il n’existe pas d’algorithme de complexite´ polynomiale pour
´
resoudre
ce DLP
Transfert additif et grand facteur premier
1
2
Isomorphisme φ : F×
→ Z/(pk − 1)Z. Mais pas d’algo connu pour
pk
l’expliciter : aussi difficile que le DLP.
´
pk − 1 doit posseder
un grand facteur premier (attaque par CRT).
UPMC - Licence Info - Crypto - 2012/13
25/28
Corps finis et DLP : BSGS de Shanks
p = 809 on veut calculer log3 525. Ici H ' Z/(p − 1)Z et donc s = 29.
Baby-steps: (j, 525 × (3j )−1 mod p) (j = 0, . . . , 28):
( 0 , 525 ) ( 1 , 175 ) ( 2 , 328 ) ( 3 , 379 ) ( 4 , 396 )
( 5 , 132 ) ( 6 , 44 ) ( 7 , 554 ) ( 8 , 724 ) ( 9 , 511 )
( 10 , 440 ) ( 11 , 686 ) ( 12 , 768 ) ( 13 , 256 ) ( 14 , 355 )
( 15 , 388 ) ( 16 , 399 ) ( 17 , 133 ) ( 18 , 314 ) ( 19 , 644 )
( 20 , 754 ) ( 21 , 521 ) ( 22 , 713 ) ( 23 , 777 ) ( 24 , 259 )
( 25 , 356 ) ( 26 , 658 ) ( 27 , 489 ) ( 28 , 163 )
Giant-steps: (j, 3j∗s mod p) (j = 0, . . . , 28):
( 0 , 1 ) ( 1 , 99 ) ( 2 , 93 ) ( 3 , 308 ) ( 4 , 559 )
( 5 , 329 ) ( 6 , 211 ) ( 7 , 664 ) ( 8 , 207 ) ( 9 , 268 )
( 10 , 644 ) ( 11 , 654 ) ( 12 , 26 ) ( 13 , 147 ) ( 14 , 800 )
( 15 , 727 ) ( 16 , 781 ) ( 17 , 464 ) ( 18 , 632 ) ( 19 , 275 )
( 20 , 528 ) ( 21 , 496 ) ( 22 , 564 ) ( 23 , 15 ) ( 24 , 676 )
( 25 , 586 ) ( 26 , 575 ) ( 27 , 295 ) ( 28 , 81 )
+t = s × 10 + 19 = 309
UPMC - Licence Info - Crypto - 2012/13
26/28
Corps finis et DLP : Index Calculus
´
+Algorithme le plus efficace pour resoudre
le DLP dans les corps finis
´
(sous exponentiel et moins gourmand en memoire).
Calcul d’indice
´
Decomposition
selon une base finie de facteurs premiers
Recherche de relations a` support dans cette base
´
`
´
Resolution
de systemes
lineaires
gigantesques

´
2048 bits est le minimum pour un bon niveau de securit
e´ du DLP
sur les corps finis.
´
´
+Etudi
e´ dans la specialit
e´ SFPN du Master Info UPMC (ouverture
2014 pour votre M2).
UPMC - Licence Info - Crypto - 2012/13
27/28
Conclusion
` utilisation de la cryptographie asymetrique
´
Premiere
pour
´
`
´
resoudre
le probleme
de l’echange
de cle´
´
`
La securit
e´ repose sur le probleme
du logarithme discret
`
´ eriquement
´
probleme
difficile gen
et qui reste difficile lorsqu’il est
instancie´ avec les corps finis
A` suivre
´
Utilisation de la cryptographie asymetrique
pour le chiffrement
´
d’autres instanciations du DLP pour une meilleure securit
e´
UPMC - Licence Info - Crypto - 2012/13
28/28