s2002 Cachan
s2002 Cachan
David Pointcheval
Chargé de recherche CNRS
Département d’informatique
École normale supérieure
Sommaire
1. Introduction
2. Les hypothèses algorithmiques
3. Le chiffrement asymétrique
4. Les preuves de sécurité
5. La signature
6. Conclusion
1. Introduction
2. Les hypothèses algorithmiques
3. Le chiffrement asymétrique
4. Les preuves de sécurité
5. La signature
6. Conclusion
Confidentialité
• Émettre
sur un canal
Authentification (2)
• Attacher, à un message,
une preuve non-interactive de son origine
• Si cette preuve peut convaincre un tiers
⇒ signature
Substitutions et permutations :
cadrans cylindres
Algorithmes secrets
Scytale Lacédémonienne :
Enrouler un ruban autour d’un bâton,
écrire puis dérouler
⇒ permutation des caractères
Chiffrement de César :
Décalage constant des lettres du
message (à l’origine +3)
MESSAGE ➩ PHVVDJH
⇒ substitution des caractères
David Pointcheval La cryptographie asymétrique et les preuves de sécurité- 10
Chiffrement par décalage
Machines chiffrantes
Automatisation
des permutations
et substitutions
Enigma
Âge paradoxal
Fonctions à sens-unique
(éventuellement à trappe)
⇒ Preuves de sécurité
Chiffrement symétrique
Algorithme de chiffrement, C
Algorithme de déchiffrement, D
k k
c
m C D m
Sécurité
Recherche exhaustive :
si la clé est de longueur n,
il y a 26n possibilités
n = 5 ⇒ 2 23 n = 10 ⇒ 2 47 n = 15 ⇒ 2 70
→ Recherche exhaustive
vite hors de portée
Sécurité parfaite ?
Chiffrement de Vernam :
Combiner le message à chiffrer
avec une suite de bits aléatoires
c = m⊕k m = c⊕k
Sécurité inconditionnelle
à condition que la « clé » k soit aussi
longue que le message m (Shannon)
Chiffrement symétrique
• clé unique k
– chiffrement
– déchiffrement
• conception heuristique :
– permutations (diffusion)
– substitutions (confusion)
• orienté implémentation matérielle
→ débit rapide
Chiffrement symétrique
– RC4 (Rivest)
chiffre octet par octet
Algorithme de chiffrement, C
Algorithme de déchiffrement, D
kc kd
c
m C D m
Chiffrement asymétrique
• Lois de Kerckhoffs poussées à bout
• Deux clés :
– chiffrement kc → publique
– déchiffrement kd → privée
• Fondements mathématiques :
– fonctions à sens-uniques
– fonctions à trappe
• Analyse de sécurité
→ sécurité calculatoire
David Pointcheval La cryptographie asymétrique et les preuves de sécurité- 28
Chiffrement asymétrique
Authentification
• Algorithme d’authentification, A
• Algorithme de vérification, V
ka kv
σ
m A
m V 0/1
Signature numérique
• Deux clés :
– signature ka → privée
– vérification kv → publique
• Fondements mathématiques :
– fonctions à sens-uniques
• Analyse de sécurité
→ sécurité calculatoire
• Authentification interactive :
Alice (client) veut prouver
à Bob (serveur) son identité
Je m’appelle
Alice
Prouve-le moi !
Protocoles « zero-knowledge » :
– preuve de connaissance d’un secret
– sans transfert d’information sur ce secret,
seule la conviction de connaissance
Intégrité
Exemples
• MD-2, MD-4 (Rivest, 1990, 128 bits)
• MD-5 (Rivest, 1991, 128 bits) :
très utilisée dans le monde UNIX
• SHA (NIST, 1992, 160 bits) :
« Standard Américain » en 1993
Remplacé, « pour faiblesse technique »
• SHA-1 (NIST, 1994, 160 bits)
• SHA-256/384/512 (NIST, 2000)
condensés sur 256, 384 ou 512 bits
David Pointcheval La cryptographie asymétrique et les preuves de sécurité- 38
Les hypothèses algorithmiques
1. Introduction
2. Les hypothèses algorithmiques
3. Le chiffrement asymétrique
4. Les preuves de sécurité
5. La signature
6. Conclusion
Chiffrement asymétrique
Algorithme de chiffrement, C
m → c : transformation aisée
c
m C D m
Algorithme de déchiffrement, D
c → m : transformation difficile
à moins de connaître une trappe
David Pointcheval La cryptographie asymétrique et les preuves de sécurité- 40
Outils nécessaires
• Fonctions à sens-unique :
étant donnée une relation y = f(x)
x → y aisé, mais y → x difficile
• Fonctions à sens-unique à trappe :
étant donnée une relation y = f(x)
x → y aisé,
y → x difficile
y → x aisé avec z (« trappe »)
David Pointcheval La cryptographie asymétrique et les preuves de sécurité- 41
Οe
Record actuel : nombre n produit de deux
facteurs premiers de 78 chiffres
David Pointcheval La cryptographie asymétrique et les preuves de sécurité- 42
Et la trappe ?
• Le produit/factorisation
est une fonction à sens-unique
mais où est la trappe ?
• Certains calculs dans /n sont
– faciles si on connaît les facteurs de n
– difficiles sans les facteurs de n
L’anneau quotient :
n = /n = {0,1,… , n-1}
Théorème de Bezout
Soient a et b deux entiers
(∃u,v)(au+bv=1)⇔pgcd(a,b)=1
n ⇔n
David Pointcheval La cryptographie asymétrique et les preuves de sécurité- 44
Algorithme d’Euclide
• Trouver l’inverse d’un élément x modulo n
revient à trouver u et v tels que
ux + vn = 1
• L’algorithme d’Euclide calcule
le PGCD de deux entiers
• Une version « étendue » calcule
les coefficients u et v.
Ces deux algorithmes ont une complexité
linéaire en la taille des arguments.
David Pointcheval La cryptographie asymétrique et les preuves de sécurité- 45
n ≅ p× q
*
n ≅ *
p × *
q
p est premier :
ϕ ( p ) = card( *
p ) = p −1
Fonction d’Euler
1
n = ∏ pi ⇒ ϕ (n) = n × ∏ 1 −
vi
pi
connaissance
(d’un multiple) de ϕ(n)
connaissance de
la factorisation de n
David Pointcheval La cryptographie asymétrique et les preuves de sécurité- 48
Théorème d’Euler
La fonction RSA
∗ ∗ ∗ ∗
f: n → n g: n → n
m me mod n c cd mod n
Estimations de complexité
Οe
Le théorème de Lagrange
⊆ *
p groupe cyclique d’ordre q
g générateur : = <g>
Clairement DH ≤ LD
(a = LoggA et C=Ba)
Et les trappes ?
f: → f: →
gr yr R Rx
Hypothèse Diffie-Hellman
• Évaluation de f :
r ou x suffisent
• nécessaire ?
– En pratique : oui
– En théorie : non
• Hypothèse Diffie-Hellman :
DH(g) ≈ LD(g)
Le chiffrement asymétrique
1. Introduction
2. Les hypothèses algorithmiques
3. Le chiffrement asymétrique
4. Les preuves de sécurité
5. La signature
6. Conclusion
Algorithme de chiffrement, C
kc : clé de chiffrement (publique)
kc kd
c
m C D m
Algorithme de déchiffrement, D
kd : clé de déchiffrement (privée)
C(m) = me mod n → c
( ) d
D(c) = cd = me = m mod n
B2 B
secret D(c) ∈ c + − mod n
4 2
David Pointcheval La cryptographie asymétrique et les preuves de sécurité- 64
Propriétés de Rabin
Efficacité
• Chiffrement : 1 mult mod n
• Déchiffrement : 3|n|/8 mult mod n
Échange de clé
Diffie-Hellman (1976)
Secret commun K = X y = Y x = g xy
• g : générateur commun
• x : clé privée
• y=gx : clé publique
public C( m) = ( g a , y a m) → (c, d )
secret D(c, d ) = d / c x
Inversion de El Gamal
g : générateur commun
x : clé privée y=gx : clé publique
Inversion EG = DH
David Pointcheval La cryptographie asymétrique et les preuves de sécurité- 68
Les preuves de sécurité
1. Introduction
2. Les hypothèses algorithmiques
3. Le chiffrement asymétrique
4. Les preuves de sécurité
5. La signature
6. Conclusion
Hypothèses calculatoires
• Sécurité parfaite :
le chiffré et les données publiques
ne révèlent aucune information
sur le message clair,
sauf éventuellement la taille
Au sens de la théorie de l’information
⇒ impossible
Buts de l’adversaire
Notions de sécurité
( m ) = ( g a , y a m ) → (c, d ) ( c, d ) = d / c x
OW-CPA = problème DH
El Gamal : OW-CPA
( m ) = ( g a , y a m ) → (c, d ) ( c, d ) = d / c x
= (<g>, ×) et (A,B)
en entrée de B ε = mPr, a[ (c' ) = m c' = (m;a) ]
• y ← A et c ← B
• Valeur aléatoire d : A(c,d) → m
• Retourne d/m
Si m est correct, DH(A,B)=d/m
SuccDH (B) = SuccOW-CPA(A) = ε
David Pointcheval La cryptographie asymétrique et les preuves de sécurité- 84
El Gamal : IND-CPA
(m0, m1, s) ← 1 (ke)
c' ← (mb, a) −1
ε = 2 Pr (m ,
2 0 1 m , c' , s ) = b
a, b
⊆ *
p groupe cyclique d’ordre q
g générateur : = <g>
Calculatoire :
• Étant donnés A=ga et B=gb
• Calculer DH(A,B) = C=gab
Décisionnel :
• Étant donnés A=ga, B=gb et C=gc
• Décider si DH(A,B) = C (ou c=ab mod q)
David Pointcheval La cryptographie asymétrique et les preuves de sécurité- 86
Attaques à chiffrés choisis
Schémas IND-CCA
• Rackoff-Simon (1991),
définition de la notion CCA
+ exemple (pas pratique)
• Cramer-Shoup (1998),
premier exemple pratique :
IND-CCA = DDH
Mais pas très efficace
⇒ modèle de l’oracle aléatoire
David Pointcheval La cryptographie asymétrique et les preuves de sécurité- 88
Conversions génériques
• Toute fonction injective à sens-unique à
trappe = chiffrement OW-CPA
• Mais OW-CPA insuffisant
• Comment atteindre IND-CCA ?
⇒ conversions génériques
de OW-CPA en IND-CCA
( , ) est supposé un chiffrement faible et on
fabrique un chiffrement fort ( , )
David Pointcheval La cryptographie asymétrique et les preuves de sécurité- 89
M a
M = m||0…0 G et H
G H fonctions aléatoires
r aléa
r b
Autres conversions
(m ; r||s)= a = (r ; s) avec r∈ s∈
b = k ⊕ m où k = G(r)
c = H(m,r,a,b)
(a,b,c): Calculer r = (a) et k = G(r)
extraire m = k ⊕ b
si c = H(m,r,a,b) et r∈
alors retourner m sinon « refus »
Conversion de tout chiffrement OW-PCA
en chiffrement IND-CCA
David Pointcheval La cryptographie asymétrique et les preuves de sécurité- 95
G: G
2 2H
David Pointcheval La cryptographie asymétrique et les preuves de sécurité- 97
Preuve : IND-CPA
Plaintext-awareness
IND-CCA
Après q questions à l’oracle de
déchiffrement
• toutes les simulations de déchiffrement ont
réussi, avec probabilité
(1 - 1/2 H )q ≥ 1 - q /2 H
• r a été demandé à G ou à H
(et extrait grâce au PC-oracle)
avec probabilité
Adv q
supérieure à − H
2 2
David Pointcheval La cryptographie asymétrique et les preuves de sécurité- 102
Les problèmes Diffie-Hellman
• Calculatoire
✦ Étant donnés A=ga et B=gb
✦ Calculer DH(A,B) = C=gab
• Décisionnel
✦ Étant donnés A, B et C
✦ Décider si C = DH(A,B)
• Gap Résoudre le problème calculatoire,
avec un accès à un oracle de
décision
David Pointcheval La cryptographie asymétrique et les preuves de sécurité- 103
Le Gap-Diffie-Hellman
(Okamoto-Pointcheval PKC ‘01)
Sécurité pratique
1. Introduction
2. Les hypothèses algorithmiques
3. Le chiffrement asymétrique
4. Les preuves de sécurité
5. La signature
6. Conclusion
Authentification
Schéma de signature
• Algorithme de signature :
(A,ka) : secret
• Algorithme de vérification :
(V,kv) : public
ka kv
σ
m A
m V 0/1
(σ , m, ) =1
• Falsification universelle :
être capable d’authentifier
tout message sans ka
• Falsification existentielle :
être capable d’authentifier
un message sans ka
David Pointcheval La cryptographie asymétrique et les preuves de sécurité- 111
Attaques
Permutations
à sens-unique à trappe
(m,d)=md modn→σ
David Pointcheval La cryptographie asymétrique et les preuves de sécurité- 115
Sécurité
C public et D secret
D(C(x)) = C(D(x)) = x
• Calculer σ pour tout m :
calcul de D(m) pour tout m
⇒ falsification universelle = D
• Falsification existentielle :
Soit σ quelconque et m = C(σ)
V(σ,m) = (C(σ) = m) = 1
(m,σ) paire valide sans D !
David Pointcheval La cryptographie asymétrique et les preuves de sécurité- 116
Full-Domain Hash
C public et D secret
D(C(x)) = C(D(x)) = x
h : fonction de hachage « aléatoire »
{0,1}*→Im(C)
(m)=D(h(m))→σ
(σ,m)= h(m)=C(σ)
?
David Pointcheval La cryptographie asymétrique et les preuves de sécurité- 117
Intérêt de FDH-RSA
• Efficacité : même si le message à signer
est long,
– un seul bloc à signer
– |σ| = |n| = 1024 bits : overhead fixe
• Sécurité : si h aléatoire,
une falsification existentielle
est équivalente au problème RSA
il est aisé de trouver (h(m),σ),
mais ensuite il faut remonter à m :
inverser h
David Pointcheval La cryptographie asymétrique et les preuves de sécurité- 118
Hypothèses de complexité
• Chiffrement asymétrique :
besoin de fonctions à sens-unique
avec une trappe
peu de candidats : RSA, Diffie-Hellman
• Signature numérique :
une fonction à sens-unique suffit
pas besoin de trappe
⇒ tout problème difficile :
problèmes NP-complets, RSA, LD
David Pointcheval La cryptographie asymétrique et les preuves de sécurité- 119
p et g : éléments communs
x : clé privée y=gx : clé publique
Signature de m :
choisir k∈ p-1 inversible
calculer r=gk mod p
et s=(m-xr)×k-1 mod p-1 σ = (r,s)
Vérification de (m,σ) :
( gxr gk(m-xr)k-1 = ) yr rs = gm mod p
David Pointcheval La cryptographie asymétrique et les preuves de sécurité- 120
Falsification existentielle
Équation de vérification :
yr rs = gm mod p
Posons r = yagb mod p
Alors yr rs = yr yas gbs = gm mod p
r+as = 0 mod p-1
bs = m mod p-1
Soit s = -r/a mod p-1 et m = bs mod p-1
Vérification de (m,σ) :
u = gs ye (= gk-xe gxe mod p) tester e=h(m,u) ?
David Pointcheval La cryptographie asymétrique et les preuves de sécurité- 122
Preuve de sécurité (PS ‘96)
Falsification existentielle
selon une attaque à messages
choisis adaptative
dans le modèle de l’oracle aléatoire
= résolution du logarithme discret
(extraction de la clé privée)
Lemme de bifurcation
h aléatoire
e=h(m,r)
(m,e,s) prob. ε
y aléatoire
y aléatoire
h(m,r)
h
aléatoire
e
(m,e,s) prob. ε
h e’
aléatoire
(m,e’,s’) prob. ε/qh
Après 2 exécutions, avec probabilité ε2/qh :
gs ye = r = gs’ ye’ ⇒ gs-s’ = ye’-e
Posons α = (s-s’)/(e’-e) mod q ⇒ y=gα
David Pointcheval La cryptographie asymétrique et les preuves de sécurité- 124
Digital Signature Algorithm
Norme américaine (1994)
Variante de Schnorr : (p,q,g) et (x,y)
Signature de m :
choisir k∈ q inversible σ = (r,s)
et calculer r=(gk mod p) mod q
ainsi que e=SHA(m) et s = (e+xr)× k-1 mod q
Vérification de (m,σ) :
u = SHA(m) s-1 mod q et v = r s-1 mod q
tester si r = (gu yv mod p) mod q ?
Comparaison
• DSA :
Avantages
– pas breveté (norme)
Inconvénients
– efficace : rajout d’inversions
– sûr : e=h(m) (et non h(m,r) qui suffirait)
• ECDSA : DSA sur courbes elliptiques
– preuve de sécurité (sous hypothèse forte)
PKP : complexité
→r r
e = H(m,r)
←
e
s → (r, s)
→s
V(r , e, s )
V(r,e,s)
David Pointcheval La cryptographie asymétrique et les preuves de sécurité- 131
Non-répudiation
1. Introduction
2. Les hypothèses algorithmiques
3. Le chiffrement asymétrique
4. Les preuves de sécurité
5. La signature
6. Conclusion
Conclusion
La sécurité prouvée se fait en 3 étapes
1. notions formelles de sécurité
2. hypothèses algorithmiques précises
3. réduction
d’une mise en défaut d’une hypothèse
en le cassage d’une notion de sécurité
Plus la réduction est efficace, plus la
sécurité du système est proche de
l’hypothèse algorithmique
⇒ Sécurité pratique
David Pointcheval La cryptographie asymétrique et les preuves de sécurité- 134