350 likes | 479 Views
II. 2 Les protocoles simples. Sommaire. Authentification Signature électronique 3. Certification. 1. Authentification. 1.1 Principe 1.2 Par clef publique 1.3 Sans apport d’information. 1.1 Principe. Virginie veut Vérifier le secret de Paul. Paul peut Prouver qu’il possède un
E N D
Sommaire • Authentification • Signature électronique 3. Certification
1. Authentification 1.1 Principe 1.2 Par clef publique 1.3 Sans apport d’information
1.1 Principe Virginie veut Vérifier le secret de Paul Paul peut Prouver qu’il possède un secret sans le révéler par un dialogue… … que Eve Espionne
1.2 Par clef publique Notations kx : clef publique de x k’x : clef privée de x kp choix d’un défi x y = Ekp (x) z = Dk’p (y) z vérification z = x
1.3 Sans apport d’information • La grotte secrète Paul prétend pouvoir ouvrir la porte entre C et D mais ne veut pas le montrer A Virginie veut vérifier ce que lui dit Paul 1. Virginie se place au point A B 2. Paul entre dans la grotte jusqu’au point C ou D 3. Virginie va au point B et demande à Paul de sortir soit de C soit de D C D 4. Si Paul ne peut s’exécuter c’est qu’il n’a pas la clef
La grotte secrète : le « bluff » Paul peut sortir du bon côté sans avoir la clef si tous les choix sont équiprobables, Paul peut « bluffer » Virginie avec p = 1/2 Virginie répète le test n fois la porte se referme automatiquement après chaque test Un usurpateur peut « bluffer » Virginie avec p = 1/2n n = 20 p = 1/220 10-6
Exemple : co-isomorphisme de graphes G1 = < S ; R1 > G2 = < S ; R2 > G1 G2 ssi π : S S| (u,v) R1 (π(u), π(v)) R2 exemple 2 4 1 2 3 1 4 3 G2 G1 π(G1,G2) = (3, 1, 4, 2)
Complexité P π( G1, G2 ) G1 G2 NP
Le protocole construit π (G1, G2) G1& G2 publie garde secret π (G1, G2) H construit π (H, Gi ) choisit j {1, 2 } équiprobablement j construit π (H, Gj ) π (H, Gj) vérifie π (H, Gj )
Le « bluff » • Paul peut toujours construire π (H, Gj) si j = i π (H, Gj ) = π (H, Gi) pas d’utilisation du secret si j ≠ i π (H, Gj ) = π (H, Gi ) ° π (Gi, Gj ) utilisation du secret nécessaire • Un usurpateur peut « bluffer » Virginie, donc construire π (H, Gj), si j = i • Preuve itérée n fois probabilité d’usurpation = 1/2n
Apport d’information • Eve peut intercepter la suite des triplets < Hk , jk, πk (Hk, Gjk ) > • Mais ces triplets peuvent être construits par n’importe qui Preuve G1 et G2 sont publics H peut être construit avec π, j et Gj Les triplets n’apportent aucune information à Eve
2. Signature électronique 2.1 Objectifs et Principe 2.2 Mécanisme 2.3 Formalisation 2.4 Inversion des clefs 2.5 Signature d’un message public 2.6 Signature d’un message secret 2.7 Falsification et Répudiation 2.8 Hachage 2.9 Signatures non reproductibles
2.1 Objectifs et Principe • Objectifs : empêcher • Falsification • Répudiation • Usurpation • Principe • Attacher à un message une information • Indissociable du message • Authentifiant son émetteur • Assurant l’intégrité du message • Vérifiable publiquement • Non reproductible
2.2 Mécanisme • fonction de signature s = sig (k, x) • prédicat public de vérification ver (k, x, s) s = sig (k, x) sigk x s verk
2.3 Formalisation < P, K, A ; S ; V > P textes en clair K clefs de signature A signatures S : P x K A fonction de signature V : P x K x A { vrai, faux } vérification
2.4 Inversion des clefs • En-cryptages et Dé-cryptages inversibles k : clef publique k’ : clef secrète Dk’ (Ek (M)) = Dk (Ek’ (M)) = M • Exemple : RSA E = D
2.5 Signature d’un message public public ka Alice Bob clef secrète k’a message : x y = Dka (s) x, s vérification verka (x, s) = (x = y ) signature s = sigka (x) = Ek’a (x)
2.6 Signature d’un message secret public ka kb Alice Bob clef secrète k’a clef secrète k’b message : x s = Dk’b (y) y signature s = sigka (x) = Ek’a (x) vérification verka (x, s) = (x = Dka (s) ) y = Ekb (s)
2.7 Falsification et Répudiation • Eve ne peut décrypter y seul Bob possède k’b • Bob ne peut falsifier x • Alice ne peut répudier x • Eve ne peut signer x seule Alice peut produire Ek’a (x) • Cas d’un message secret • La signature n’est pas publique
2.8 Hachage • Fonction de hachage cryptographique P textes en clair Z empreintes h : P Z fonction de hachage z = h (x) empreinte de z h : {0, 1}* {0, 1}n • z : longueur fixe • h n’est pas injective • h-1 n’existe pas • attaque des anniversaires possible
Signature d’un message public public h, ka Alice Bob clef secrète k’a message : x x, s z = Dka (s) empreinte : z = h (x) vérification verka (x, s) = (z = h(x) ) signature s = sigka (x) = Ek’a (z)
Falsification et répudiation • x n’est pas secret • vérification publique D, ka, h sont publics • Falsification par Bob Recherche d’un x’ tel que h(x’) = h(x) collision faible • Répudiation par Alice Fabrication de x, x’ tels que h(x’) = h(x) collision forte • Eve ne peut signer x seule Alice peut produire Ek’a (x)
Construction de la fonction de hachage • h : {0, 1}* {0, 1}n • on utilise souvent une fonction g : {0, 1}m {0, 1}n m > n • on calcule n pour rendre difficile l’attaque des anniversaires
Construction par cryptage P = C = K = {0, 1}n E : P x K C g : {0, 1}n x {0, 1}n {0, 1}n exemples g (x, k) = e (x, k) x g (x, k) = e (x, k) x k g (x, k) = e (x k, k ) x g (x, k) = e (x k, k ) x k
Construction de Merkle g : {0, 1}m {0, 1}n r = m - n > 1 x {0, 1}* l = |x| u = 0i x |u| mod r = 0 • x est complété avec des « 0 » en tête y = 0j l |y| mod (r-1) = 0 • l est complété avec des « 0 » en tête y = t1 t2 … |ti| = r-1 y est découpé en blocs de longueur r-1
v = 1 w1 1 w2 … • « 1 » est ajouté devant chaque bloc w = u 0r v w est composé de t blocs de longueur r H est construite inductivement H0 = 0n Hi = g (Hi-1 wi) 1 ≤ i ≤ t h = Ht
Propriétés et exemple • propriété g résiste aux collisions h résiste aux collisions • exemple r = 4 x = 11101 l = 101 u = 0001 1101 v = 1101 w = 0001 1101 0000 1101 t = 4 h = g ( g ( g ( g (0n 0001)1101)0000)1101)
Taille de l’empreinte P : textes en clair |P| = m Z : empreintes |Z| = n h : P Z fonction de hachage théorème des anniversaires m > 2n/2 pr ( x, x’ P x ≠ x’ h(x) = h(x’) ) > 1/2 exemples n = 40 m > 220 220 s 1s n = 128 m > 264 264 s 500 000 ans n = 160 m > 280 280 s 2 AU
Autres constructions طاهرالجمل Taher Elgamal (1955) • Basées sur la construction de Merkle MD5 Message-Digest Algorithm (n = 128 bits ) SHA Secure Hash Algorithm (n = 160 bits) • Basées sur la construction de Elgamal DSS Digital Signature Standard DSA Digital Signature Algorithm • issues de l’algorithme de signature dû à Taher Elgamal, basé sur le logarithme discret
2.9 Signature non reproductible • Objectif : éviter le re-jeu • Méthode : introduction d’un « nonce » (number once) dans la signature • exemple : compteur, date N : ensemble des nonces S : P x K x N A fonction de signature V : P x K x N x A {vrai, faux } vérification
3. Certification 3.1 Objectif et Principe 3.2 Contenu d’un certificat 3.3 Utilisations
3.1 Objectif et Principe • Objectif • Association clef publique - identité • Publication sécurisée de la clef publique • Contre l’attaque du « man in the middle » • Principe • Tiers de confiance • centralisés : autorités de certification CA • distribués : chaînes de confiance PGP
3.2 Contenu d’un certificat • Contenu minimum en clair A, kA, n • A : identité de A nom, adresse IP, domaine, etc … • kA : clef publique de A • Nonce • Informations complémentaires • Date de limite de validité • Type de cryptage utilisant la clef • Etc … • Signature du tiers de confiance
3.3 Utilisations • Enregistrement de la clef publique • Vérification de l’identité du détenteur d’un secret • Distribution de clefs de session généralement privées