Vous êtes sur la page 1sur 36

Initiation la cryptographie

Factorisation, Log discret et


Intgrit, Authentification
Pierre-Alain FOUQUE
quipe de Cryptographie
cole normale suprieure
Initiation la cryptographie
2
Algorithme pour la Factorisation
Strassen - Pollard
Mthode Rho
Mthode p-1
! Courbe elliptique
Carr alatoire
! Crible quadratique
! Crible de corps de nombre
Initiation la cryptographie
3
Algorithme de Strassen
Algorithme dterministe prouv en
temps O(N
1/4
log
2
(N))
B = N
1/4
et f(x) = x(x-1)(x-B+1)
! f(jB) = (jB)!/((j-1)B)!
Si pgcd(N,f(jB))>1, alors facteur de N
! recherche exhaustive parmi B valeurs
Calcul de pgcd(N,f(jB)) pour j=1, , B
en temps O(Blog
2
(B))
Initiation la cryptographie
4
Mthode Rho de Pollard
Ide: f:Z
N
!Z
N
et x
0
"Z
N
et x
i
=f(x
i-1
) #i!1
On espre que x
0
,x
1
,x
2
, sera une suite de valeurs
de Z
N
alatoires et indpendantes
Si p facteur inconnu de N, on aura une collision mod
p si $t et l>0 t.q. x
t
=x
t+l
mod p
Si N nest pas premier et q un autre facteur, et x
i
mod N alatoire, alors x
i
mod p et x
i
mod q sont
indpendants et alatoires (CRT)
Improbable x
t
=x
t+l
mod q, pgcd(x
t-
x
t+l
,N)=p
Mthode heuristique: O(%&p) et f(x)=x
2
+1
Amlioration mmoire: Astuce de Floyd
Initiation la cryptographie
5
Mthode p-1
N=pq tq p-1 est B-lisse
x B-lisse si tous ces facteurs prem "B
Soit Q='
i| q"B
q
(ln N/ln q)
(p-1)|Q, #a"Z*
p
a
Q
=1 mod p (Fermat)
Alors pgcd(a
Q
-1,N)=p
Temps de calcul: O(B ln N/ln B) mult. mod.
ECF: Extension de p-1 p-c car lordre de la
courbe est dans lintervalle p+1%& p
Cot ECF: L
p
(1/2,1) o
L
q
(*,c)=O(exp((c+o(1))(ln q)
*
(ln ln q)
1-*
))
Initiation la cryptographie
6
Carrs alatoires
Si x
2
=y
2
mod N et x+y mod N, alors pgcd(x-y,N)
facteur non-trivial de N
Choisir une base de facteur S={p
1
,p
t
}
! Trouver des paires (a
i
,b
i
) tq
" a
i
2
=b
i
mod N
" b
i
='
j
p
j
eij
e
ij
!0, (b
i
est p
t
-lisse)
! Trouver un sous-ensemble des b
i
dont le produit est un carr
parfait (utiliser de lalgbre creuse)
Algorithme de Dixon:
! a
i
est choisi au hasard et division par les p
i
Crible quadratique:
! x=(%& N) et q(x)=(x+m)
2
-N. q(x)=x
2
-2mx+m
2
-N,x
2
+2mx
! Si a
i
=(x+m) avec x petit, b
i
=(x+m)
2
-N sera petit et p
t
-lisse avec
plus forte proba. Rq: si p
i
|b
i
alors (N|p
i
)=1
Initiation la cryptographie
7
Algorithme pour le Log. Discret
Baby-Step Giant-Step
Rho de Pollard (sans mmoire)
Pohlig-Hellman
Initiation la cryptographie
8
Baby Step Giant Step
Compromis temps/mmoire
Soit n ordre de *, m=-%&n.,
Si /=*
x
, x=i0m+j o 0"i,j<m et
*
x
=*
im
0*
j
donc, /(*
-m
)
i
= *
j
Faire une table avec lensemble des valeurs (j,*
j
) et
trier suivant *
j
Prcalculer *
-m
et matcher /(*
-m
)
i
Cot: O(%& n) mult. mod. et comparaisons
Initiation la cryptographie
9
Pohlig-Hellman
Si n='
i
p
i
ei
, alors pour chaque pi, on
peut rechercher lordre mod p
i
ei
On recherche lordre mod p
i
avec la
technique prcdente ou directement
x=x
0
+x
1
p
i
+x
i
p
ei
x
i
aprs lautre x
i-1
Finir avec CRT
Initiation la cryptographie
10
Notion de scurit
Pour dterminer la taille des cls utiliser,
on utilise le meilleur algorithme pour casser
la primitive et laide de sa complexit C,
on value le plus petit entier n tq C(n)!2
80
Aujourdhui, des calculs ont t faits
jusqu 2
64
oprations de chiffrement
symtrique (DES par exemple) avec 40 000
machines pendant 5 ans
2
80
est le niveau le plus bas
2
128
pour les applications plus sensibles
Initiation la cryptographie
11
Record de Factorisation et Log
Discret et Consquences
Factorisation:
! RSA200: 663 bits en mai 2005 (200 chiffres dcimaux) avec 80
AMD Opteron
Log Discret:
! Mod p: en juin 2005 (130 chiffres dcimaux) avec 16 processeurs
en un mois
! Dans GF(2
n
) : n=607 et n=613 16 processeurs en 2 mois
1024 bits est un minimum pour RSA et DL sur Z
p
*
Sur EC, on peut prendre p de 160 bits car les
algorithmes pour DL sont plus lents
Initiation la cryptographie
12
Introduction: scurit prouve
Historiquement, la cryptographie a t
une course entre les cryptographes et
les cryptanalystes
Au dbut des annes 1980, on a
cherch formaliser et asseoir la
cryptographie sur des bases solides
Initiation la cryptographie
13
Problme des hypothses
On ne sait pas si RSA est quivalent
la factorisation (RSA " Fact.)
Schma de Rabin:
! E(m)=m
2
mod N o N=pq
! D(c)=CRT(rac. carre mod p, rac. carre mod q)
! Par ex. si p=q=3 mod 4, x
1/2
=x
(p+1)/4
mod p
Si on sait dchiffrer, alors on sait
factoriser
! Si A sait dchiffrer, construire une MT qui utilise
A comme sous-routine et factorise
Initiation la cryptographie
14
Scurit par rduction
Prouver la scurit dun schma: technique
des preuves par rduction en complexit
! Si P1 se rduit P2, not P1"P2, et si P1 est difficile, alors
P2 sera aussi difficile
Rduction vers problmes algorithmiques
conjecturs comme difficile (P1)
Preuve par labsurde
! On montre que sil existe un adversaire contre le schma
cryptographique (algo A), alors il existe un attaquant (algo
B) contre le problme algorithmique
! Comme le problme algorithmique est suppos difficile, il
nexiste pas dalgo B et donc pas dalgo A
Initiation la cryptographie
15
Formalisation dune attaque
Description dune attaque en terme de
problme algorithmique
Adversaire: algorithme
But de ladversaire: ce quil cherche faire
! calculer une fonction ou son inverse sur une entre prcise
Modle dattaque: les moyens quil a sa
disposition
! valeurs entres/sorties de la fonction quil connat
Dans certains cas, modliser des fonctions
difficiles dcrire en terme mathmatique
! Modle de loracle alatoire (Fonction de hachage =
fonction alatoire)
Initiation la cryptographie
16
Algorithme efficace
Algorithme efficace: MTD probabiliste
en temps et mmoire polynomial (PPT)
! Bande supplmentaire externe qui contient des
bits gnrs selon une distribution uniforme et
indpendamment les uns des autres r"{0,1}
t
M
(x)
! La sortie et le temps dpendent de la valeur r
des bits alatoires. M(x,r) et t
M
(x) sont des VA
! Indpendamment de r, M sarrte aprs t
M
(x) pas
de calculs et donc r est born
Pr(M(x,r)=y : r"{0,1}
tM(x)
) = |{r"{0,1}
tM(x)
:M(x,r)=y}|/2
tM(x)
Initiation la cryptographie
17
Adversaire et Probabilits
Adversaire: algo. PPT
! viter quun adversaire dchiffre ou signe avec
proba 1/2
! On aimerait Pr(A(y)=x : x1Dom, y=E(x)) " 1/2
n
o n est la taille de y en bits
Probabilit :
! Proba. crasante ! 1-1/p(n) pour tout polynme
p et n ! N (par exemple 1-1/2
n
)
! Proba. ngligeable " 1/p(n) pour tout polynme
p et n ! N (par exemple = 1/2
n
)
! En pratique, ds que proba. ! 1-1/2
80
(crasante)
et proba. " 1/2
80
(ngligeable)
Initiation la cryptographie
18
Scurit pratique
On veut que les rductions russissent
avec la meilleure proba.
! Si on casse avec proba. 2 le schma initial, alors
on casse lhypothse algorithmique avec proba.
2=q2 (q nombre de questions par ex)
! or 2=2
61
pour |N|=768 et donc si q=2
60
, alors la
preuve nous dit que la proba de casser le
schma est 1/2 ce qui est loin dtre ngligeable
! en pratique, il faut donc choisir 2=2
80
, et si
q=2
40
, alors 2=2
120
pour |N|=4096 3 moins eff.
Preuve fine: 2,2
Initiation la cryptographie
19
Efficacit pratique
Pour valuer lefficacit dune
rduction, utiliser le rapport T/2 o
! T reprsente le temps de la rduction et
! 2 la probabilit de russite
Si le temps de la rduction est trop
grand, alors on augmente aussi le
temps pour casser lhypothse
! avec plus de temps, on peut casser des modules
plus grand par exemple
Initiation la cryptographie
20
Intgrit et Authentification
Intgrit: garantir que le contenu dune
communication ou dun fichier na pas t
modifi
Authentification: garantir lidentit dune
entit (identification) ou lorigine dune
communication ou dun fichier
(authentification de donnes)
! Non-rpudiation (signature): le signataire ne peut pas
dnier sa signature
Initiation la cryptographie
21
Identification
Pour sidentifier une fois Bob ou
Charlie, Alice utilise une fonction
sens unique et leur envoie y=f(x)
Pour sidentifier, Alice envoie x
Pour se faire passer pour Alice, Charlie
doit calculer x tq f(x)=f(x)
Si un tel adversaire existe, alors on a
casser la fonction sens unique
Initiation la cryptographie
22
Identification Multiple
Pour sidentifier n fois auprs du mme
serveur, on utilise OTP (One-Time
Password)
Soit f une fonction sens unique (fonction
de hachage par exemple H),
On choisit x alatoire et on calcule y
n
=f
n
(x)
(n fois f), on envoie y
n
au serveur
La i-ime fois, on envoie x
n-i
tq f(x
n-i
)=y
n-i
et le serveur remplace y
n-i
par x
n-i
Initiation la cryptographie
23
Signature
Proprits garanties:
Intgrit des donns transmises
Authentification de lmetteur (preuve de
connaissance de la cl secrte)
Non-rpudiation
Similaire au MAC mais avec de la cl
publique
Initiation la cryptographie
24
Schma de signature
G(1
n
): PPT algo. de gnration de cl
S
sk
(m): PPT algo. de gnration de
signature
V
pk
(m,s): algo. de vrification valeur
{0,1}
! 1 =signature valide, 0 =signature invalide
Pour tout m"M
n
, V
pk
(m,S
sk
(m))=1
Initiation la cryptographie
25
Buts de ladversaire
Cassage total: retrouver la cl secrte
Falsification : Un schma de signature S est
dit difficile falsifier (contrefaire) si:
Falsification universelle (algo. quivalent signer)
Falsification slective (falsifier certains messages
dtermins lavance)
Falsification existentielle (falsifier au moins un message -
exemple: RSA)
Pr[A(m)=s : (sk,pk)1G(1
n
),m1M
n
,V
pk
(m,s)=1]
4negl(n)
Initiation la cryptographie
26
Modle de scurit
Moyens:
! Attaque messages connus
! Attaque messages choisis gnrique (indpendamment de la
cl)
! Attaque messages choisis orient
! Attaque messages choisis adaptative (CMA)
Notion de scurit: Association entre
! Le but de ladversaire: ce quil cherche faire pour casser le
systme
! Les moyens dy parvenir
! Exemple: EF-CMA,
Pr[A(m)=s : (sk,pk)1G(1
n
),m1M
n
,m+m
i
, s
i
1A
S
(m
i
),
V
pk
(m,s)=1] 4 negl(n)
Initiation la cryptographie
27
Signature de Lamport
A partir de nimporte quelle OWF, schma de
signature sr contre une seule signature
Pour signer un message de k bits: m=m
1
m
k
On gnre 2k valeurs x
i
j
alatoires dans le domaine
dentre de f et les images y
i
j
=f(x
i
j
)
Cl publique: {y
i
j
}
i=1,.., k
pour j=0 et 1
Cl secrte: {x
i
j
}
i=1,.., k
pour j=0 et 1
Signature: x
1
m
1
x
2
m
2
x
k
m
k
Th: Si on sait casser signature avec proba 2, on sait
inverser f avec proba 2/2
Initiation la cryptographie
28
Signature padding fixe
RSA PKCS#1 v1.5 avec padding fixe
x=00||FFFFFFFFFFFFFFFFFFF||H(M) o
H est une fonction sur 160 bits et
s=x
d
mod N
Si on casse la fonction de hachage,
alors on peut casser EF-CMA
Initiation la cryptographie
29
Signature RSA
f(x)=x
e
mod N et son inverse g(x)=x
d
mod N
Cl publique: f ou de manire quivalente (e,N)
Cl secrte: g ou (d,N)
H une fonction de hachage de {0,1}* vers Z
N
S(m)=g(H(m))=s
V(m,s)=(f(s)==H(m))
Si H:{0,1}*!Z
N
, le schma est appel FDH (Full
Domain Hash)
Rem: Si on ne hache pas m, falsification existentielle
(m=s
e
mod N, s) est un couple message-signature
valide !!!
Initiation la cryptographie
30
Scurit
Th: Dans le modle de loracle alatoire,
RSA-FDH est EF-CMA
! Preuve: Supposons quil existe un adversaire F
contre le schma RSA-FDH avec proba. non
ngligeable 5(n), on peut construire un
adversaire I qui inverse RSA avec proba.
2(n)>5(n)/(q
H
+q
S
)
o q
H
est le nombre de questions loracle H et
q
S
le nombre loracle de signature
Initiation la cryptographie
31
Scurit
Th: Dans le modle de loracle alatoire,
le schma RSA-FDH est EF-CMA
! Preuve: Supposons quil existe un adversaire F contre le
schma RSA-FDH proba. non ngligeable 5(n), on peut
alors construire un adversaire I qui inverse RSA avec proba.
2(n)> 5(n)/q
S
(n) o q
S
(n) est le nombre de questions
loracle S
Initiation la cryptographie
32
Schmas de signature bass sur
des preuves ZK
Les preuves ZK permettent de
construire des schmas
dauthentification
Prouver la connaissance dune cl
secrte
Les signatures garantissent en plus
lintgrit dun document et la preuve
dauthentification est attache au msg
Initiation la cryptographie
33
Heuristique Fiat-Shamir
Ex. Signature Schnorr
Soit p un nombre premier, q un grand
diviseur premier de p-1 et g un gnrateur
du sous-groupe dordre q
P a une cl secrte x et une cl publique
y=g
x
mod p
Signature: choisir k1Z
q
, et r=g
k
mod p
c=H(p,q,g,r,m)
et s=k+xc mod q
Signature: (m,(c,s))
Vrification: H(p,q,g, g
s
0y
-c
,m)=c
Initiation la cryptographie
34
Schma de signature DSA
Soit p un nombre premier, q un grand
diviseur premier de p-1 et g un gnrateur
du sous-groupe dordre q
P a une cl secrte x et une cl publique
y=g
x
mod p
Signataire: k1Z
q
, et r=(g
k
mod p) mod q
s=(xr+H(m))/k mod q
Signature: (m,(r,s))
Vrification:u=H(m)/s et v=r/s et vrifie si
r==(g
u
y
v
mod p) mod q
Initiation la cryptographie
35
Signature base sur DDH
G un groupe dordre q premier
PK=(g,h,y
1
,y
2
) tq y
1
=g
x
"G et y
2
=h
x
"G
SK=x
Sign(m)=(c,s) tq c=H(PK,A,B,m)"Z
q
,
s=cx+r mod q
Ver(m,(c,s))=1 si c==H(PK,A,B,m) o
A=g
s
y
1
-c
et B=h
s
y
2
-c
Initiation la cryptographie
36
Conclusion
Les preuves par rduction ne sont pas
des preuves absolues (modulo
lhypothse algorithmique)
Elles donnent cependant confiance
dans le schma sil ny a pas dattaque
dans ce modle
Est-ce que le modle couvre toutes les
attaques ?

Vous aimerez peut-être aussi