Audit et Sécurité Informatique

Cryptographie, Sécurité Informatique · course

Voir tous les documents en sécurité informatique

Audit et Sécurité Informatique

Chap 4: Algorithmes à clé publique, Hachage, MAC, Signature

Numérique

Rhouma Rhouma

https://sites.google.com/site/rhoouma

Ecole superieure d’Economie Numerique

3ème année Licence

1 / 66

Plan

1 Principes de la Cryptographie asymétrique

2 RSA

3 Partage de clé de Diffie-Hellman

4

Les fonctions de Hachage

5 Problèmes et contre-mesure des problèmes de sécurité

6 MAC

7 Signature numérique

2 / 66

Principes de la Cryptographie asymétrique

Plan

1 Principes de la Cryptographie asymétrique

2 RSA

3 Partage de clé de Diffie-Hellman

4

Les fonctions de Hachage

5 Problèmes et contre-mesure des problèmes de sécurité

6 MAC

7 Signature numérique

3 / 66

Principes de la Cryptographie asymétrique

Problèmes de la cryptographie symétrique

la cryptographie symétrique utilise une seule clé pour le

cryptage/décryptage

cette clé est partagée par l’émetteur et le récepteur

Si cette clé est divulguée, toute la communication est compromise

Ne protège pas l’émetteur du récepteur qui peut modifier un

message et prétend l’avoir reçu de l’émetteur

4 / 66

Principes de la Cryptographie asymétrique

Principes de la cryptographie asymétrique

La conception de la cryptographie asymétrique vient du besoin de

résoudre deux grands problèmes :

Distribution des clés : Comment faire une communication sécurisé

sans passer par un KDC (Key distribution Center)

Signature numérique : Comment vérifier que le message est reçu

intact depuis l’émetteur légitime

Whitfield Diffie et Martin Hellman from Stanford University ont

proposé en 1976 une approche qui peut résoudre les deux

problèmes

5 / 66

Principes de la Cryptographie asymétrique

Composants de la cryptographie asymétrique

plaintext : texte clair

ciphertext : texte chiffré

algorithme de cryptage : opérations faites sur le plaintext

algorithme de décryptage : opérations faites sur le ciphertext

clé publique : utilisé par l’alg de cryptage (si confidentialité)

clé privé : utilisé par l’alg de décryptage (coté récepteur)

6 / 66

Principes de la Cryptographie asymétrique

Cryptage avec clé publique

7 / 66

Principes de la Cryptographie asymétrique

Cryptage avec clé privée

8 / 66

Principes de la Cryptographie asymétrique

Cryptographie asymétrique : confidentialité

9 / 66

Principes de la Cryptographie asymétrique

Cryptographie asymétrique : authentification

10 / 66

Principes de la Cryptographie asymétrique

Cryptographie asymétrique : confidentialité &

authentification

11 / 66

Principes de la Cryptographie asymétrique

Applications de la cryptographie asymétrique

Les algorithmes à clés publiques sont utilisés dans trois

applications :

Cryptage/décryptage : L’émetteur chiffre un plaintext par la clé

publique du récepteur

Signature numérique : L’émetteur signe un message par sa clé

privée

Partage des clés : émetteur et récepteur coopèrent pour partager

une clé de session

il y a des algorithmes qui sont appropriés pour les trois

applications, et d’autres ne sont appropriés que pour une ou deux

applications parmi les trois

12 / 66

Principes de la Cryptographie asymétrique

Applications de la cryptographie asymétrique

13 / 66

Principes de la Cryptographie asymétrique

Exigences de la cryptographie asymétrique

Ces alg doivent avoir les exigences suivantes

besoin d’une fonction trappe à sens unique

une fonction à sens unique vérifie le suivant :

Y = f (X ) est facile

X = f −1(Y ) est non-faisable

une fonction trappe à sens unique est une famille fk de fonctions

inversibles vérifiant :

Y = fk (X ) est facile si k et X sont connus

X = f −1

X = f −1

(Y ) est facile si k et Y sont connus

(Y ) est non-faisable si Y est connu et k non connu

k

k

un alg à clé publique est basé donc sur une fonction trappe à sens

unique

14 / 66

Plan

RSA

1 Principes de la Cryptographie asymétrique

2 RSA

3 Partage de clé de Diffie-Hellman

4

Les fonctions de Hachage

5 Problèmes et contre-mesure des problèmes de sécurité

6 MAC

7 Signature numérique

Publicité

15 / 66

RSA

RSA

Developpé en 1977 au MIT par Ron Rivest, Adi Shamir & Len

Adleman

le plus utiisé des alg à clé publique

c’est un alg dont le plaintext et le ciphertext sont des entiers entre

0 et n-1.

n est un nombre de taille 1024 bits ou 309 digit décimal

16 / 66

Algorithme RSA

RSA

le plaintext est crypté en blocs, chaque bloc a une valeur

inférieure à n

Cryptage d’un bloc de plaintext est comme suit :

C = M e mod n

décryptage est comme suit :

M = Cd mod n = (M e)d mod n = M ed mod n

émetteur et récepteur connaissent la valaur de n

L’émetteur connait la valeur de e

seulement le récepteur connaît la valeur de d

la clé publique est la paire (e, n)

la clé privée est la paire (d, n)

17 / 66

Génération des clés

RSA

chaque utilisateur génère ses propres clés (privée et publique)

par :

selectionner deux grands nombres premiers p et q

calculer n = p × q

calculer φ(n) = (p − 1) × (q − 1)

sélectionner aléatoirement un nombre e avec : 1 < e < φ(n) et

GCD(e, φ(n)) = 1

résoudre cette équation pour trouver d avec 0 ≤ d ≤ n :

e × d = 1 mod φ(n)

publier la paire PU = {e, n} comme clé publique

garder en secret la paire PR = {d, n} comme clé privée

18 / 66

exemple

RSA

1 Sélectionner les nb premiers : p = 17 & q = 11

2 Calculer n = p × q = 17 × 11 = 187

3 Calculer φ(n) = (p − 1) × (q − 1) = 16 × 10 = 160

4 Sélectionner e : gcd(e, 160) = 1 ; choisir e = 7

5 Déterminer d tel que d × e = 1 mod 160 et d < 160 : la valeur est

d = 23 puisque 23 × 7 = 161 = 10 × 160 + 1

6 Publier la clé publique PU = {7, 187}

7 Garder en secret la clé privée PR = {23, 187}

19 / 66

Exemple RSA

RSA

20 / 66

Exemple RSA avec un long message

RSA

21 / 66

Exponentiation dans RSA

RSA

le cryptage et le decryptage manipule des exponentiations de

grand nombres modulo n

on peut utiliser des propriétés de l’arithmetique modulaire :

(a mod n) × (b mod n) = (a × b) mod n

il faut chercher aussi à faire l’exponentiation le plus vite possible

on prend rendre l’exponentiation en O(log2n) multiplications pour

un nombre n

ex1 : 75 = 74 × 71 = 3 × 7 = 10 mod 11 =⇒ log25 = 3

multiplications

ex2 : 3129 = 3128 × 31 = 5 × 3 = 4 mod 11 =⇒ log2129 = 8

multiplications

22 / 66

Calcul de ab mod n

RSA

avec b est un entier converti en binaire en bk bk −1 . . . b0

Ex de calcul de ab mod n, pour a = 7, b = 560 = (1000110000)2, et

n = 561

23 / 66

Attaque sur RSA ?

RSA

Trois approches pour attaquer RSA :

Factoriser n en deux nombres premiers p et q. Ceci va mener à

trouver φ(n) = (p − 1)(q − 1) ce qui mène à déterminer

d = e−1 mod φ(n)

déterminer φ(n) directement sans trouver p et q, ce qui mène à

déterminer d = e−1 mod φ(n)

Déterminer directement d sans déterminer φ(n)

24 / 66

Partage de clé de Diffie-Hellman

Plan

1 Principes de la Cryptographie asymétrique

2 RSA

3 Partage de clé de Diffie-Hellman

4

Les fonctions de Hachage

5 Problèmes et contre-mesure des problèmes de sécurité

6 MAC

7 Signature numérique

25 / 66

Partage de clé de Diffie-Hellman

Échange de clé de Diffie-Hellman

Premier alg à clé publique

un très grand nombre de produit commercial utilisent ce protocole

But : permettre à deux utilisateurs d’échanger en toute sécurité

une clé qui peut par la suite être utilisée pour le chiffrement

symétrique de messages

Son efficacité est liée à la difficulté de calculer des logarithmes

discrets

26 / 66

Partage de clé de Diffie-Hellman

Échange de clé de Diffie-Hellman

27 / 66

Partage de clé de Diffie-Hellman

Échange de clé de Diffie-Hellman

La clé partagée entre deux entités A et B, est KAB

KAB = axA×xB mod q

= y xB

= y xA

A mod q ( calcul par B )

B mod q ( calcul par A )

KAB est utilisée comme clé de session dans un alg symétrique

entre A et B

si Alice et Bob continuent à communiquer, ils auront la même clé

comme avant, à moins qu’ils ne choisissent de nouvelles clés

Publicité

publiques

un adversaire doit résoudre le problème du logarithme discret

pour compromettre cet algorithme (difficile)

28 / 66

Partage de clé de Diffie-Hellman

Exemple

Alice et Bon veulent partager une clé

Ils partagent un nombre premier q=353 et un nombre a=3

choisir des nombres aléatoires secrètement : XA = 97, XB = 233

calculer les clés publiques respectives :

yA = 397 mod 353 = 40 (Alice)

yB = 3233 mod 353 = 248 (Bob)

calculer la clé de session partagée KAB :

KAB = y xA

B mod 353 = 24897 = 160 (Alice)

KAB = y xB

A mod 353 = 40233 = 160 (Bob)

29 / 66

Partage de clé de Diffie-Hellman

Man-in-the-Middle Attack

1 Darth se prépare en créant 2 clés privée/publique

2 Alice transmet sa clé publique à Bob

3 Darth intercepte cette clé et transmet sa première clé publique à

Bob. Darth calcule alors la clé partagée K2 avec Alice.

4 Bob reçoit la clé publique et calule la clé partagée K1 (avec Darth

au lieu de la faire avec Alice !)

5 Bob transmet sa clé publique à Alice

6 Darth intercepte ce message et transmet sa seconde clé publique

à Alice. Darth calcule alors la clé partagée K1 avec Bob.

7 Alice reçoit la clé et calcule la clé partagée K2 avec Darth (au lieu

de Bob)

8 Darth peut alors intercepter, déchiffrer, re-chiffrer, transmettre tous

les messages entre Bob et Alice.

30 / 66

Partage de clé de Diffie-Hellman

31 / 66

Plan

Les fonctions de Hachage

1 Principes de la Cryptographie asymétrique

2 RSA

3 Partage de clé de Diffie-Hellman

4

Les fonctions de Hachage

5 Problèmes et contre-mesure des problèmes de sécurité

6 MAC

7 Signature numérique

32 / 66

Les fonctions de Hachage

Les fonctions de Hachage

Une fonction de hachage accepte une entrée de longueur variable

et fait sortir un condensé ou empreinte de longueur fixe

h = H(M)

Son principal but est la vérification d’intégrité

Une fonction de hachage cryptographique est un algorithme dont

il est mathématiquement difficile de :

Trouver une entrée qui donne un condensé bien spécifié

(Propriété : fonction à sens unique)

trouver deux entrées qui donne le même condensé (Propriété :

Sans collision)

33 / 66

Fonction de hachage cryptographique h=H(M)

Les fonctions de Hachage

34 / 66

Le condensé du message (digest)

Les fonctions de Hachage

Le condensé du message est son empreinte digitale

Beaucoup plus petit que le message original

facile à calculer

impossible de retrouver le message depuis le condensé

Changer le message fait automatiquement changer le condensé

35 / 66

Les fonctions de Hachage

36 / 66

Authentification du message

Les fonctions de Hachage

Vérifier l’intégrité du message

S’assurer que les données reçues sont exactement comme

envoyés

S’assurer que l’identité de l’expéditeur est valide

Exemple 1 : Chiffrer le message et son condensé par un

cryptosystème symétrique

37 / 66

Authentification du message

Les fonctions de Hachage

Exemple 2 : Chiffrer seulement le condensé du message

ça permet de réduire la complexité de calcule si la confidentialité

n’est pas sollicitée

38 / 66

Authentification du message

Les fonctions de Hachage

Exemple 3 : Un secret partagé est haché

Pas de besoin de cryptage

39 / 66

Authentification du message

Les fonctions de Hachage

Exemple 4 : Un secret partagé combiné avec confidentialité

40 / 66

D’autres Utilisations des fonctions de hachage

Les fonctions de Hachage

Utilisée pour créer les fichiers de mots de passe

Lorsqu’un utilisateur tape un mot de passe, le condensé du

password est comparé au condensé enregistré pour vérification

Cette approche est utilisée par la majorité des systèmes

d’exploitation

utilisé pour détecter les intrusions et les virus

enregistrer le H(f) de chaque fichier dans le disque

l’antivirus peut vérifier par la suite si le fichier a été altéré ou non en

recalculant son condensé H(f)

Un intrus essayera de changer F sans changer H(f) : très difficile !

peut être utilisé pour construire des générateurs de séquences

pseudo-aléatoires PRNG

générer des keystreams, des clés secrètes

41 / 66

Exigences d’une fonction de hachage

Les fonctions de Hachage

Entrée de longueur variable

Sortie de longueur fixe

Efficacité : étant donnée x, il est facile de générer le condensé

H(x) en s/w ou h/w

Fonction à sens unique (Preimage resistant) : Pour un condensé

donné h, il est impossible de trouver y tel que H(y ) = h

Publicité

Pas de collision en sens large (Second preimage resistant : weak

collision resistant) : Quelque soit x donnée, il est impossible de

trouver y (cid:54)= x tel que H(y ) = H(x)

Pas de collision au sens strict (collision resistant : Strong collision

resistant) : il est impossible de trouver une paire (x, y ) tel que

H(x) = H(y )

Critère aléatoire : La sortie de H doit être aléatoire selon les tests

standards (NIST : 16 tests du critère aléatoire)

NB : "impossible" = "mathématiquement ou par calcul difficile"

42 / 66

Exigences des applications d’intégrité

Les fonctions de Hachage

43 / 66

Paradoxe d’anniversaire

Les fonctions de Hachage

Dans une classe, quelle est la probabilité pour que 2 élèves fêtent leurs anniversaires le

même jour ?

Avec 365 jours par an, une trentaine d’élèves dans la classe, on se dit qu’elle doit être

faible...

On va calculer la probabilité pour que, dans un groupe de k personnes, ces personnes

aient toutes un jour d’anniversaire différent :

Si on a 2 personnes, la première peut avoir son anniversaire

n’importe quand, la seconde n’importe quel autre jour. on a donc :

p2 = 364

si mnt on a k personnes : p3 = (1 − 1

ds un groupe de k personnes, pk = (1 − 1

365 = 1 − 1

365 )

365 )(1 − 2

365 ) . . . (1 − k −1

365 )

365 )(1 − 2

365

=⇒ Il ne faut donc que 23 personnes pour qu’il y ait plus d’une chance sur 2 (chance > 0.5) pour

que 2 personnes aient leur anniversaire le même jour.

44 / 66

Les attaques basés sur le paradoxe d’anniversaire

Les fonctions de Hachage

Dans une attaque qui cherche des collisions, l’adversaire veut trouver 2 messages qui

donnent le meme condensé.

Dans une classe de 23 étudiants la probabilité de trouver 2 étudiants ayant le meme

anniversaire est > 0.5

Si le condensé est codé sur b bits, il y a 2b empreinte possibles.

si on prend k msg différents, la probabilité de trouver 2 msg ayant le meme condensé est :

p = 1 − (1 −

k − 1

2

1

2b

2b

2b

2b ) . . . (1 − k −1

2b ) ≤ 1

2b )(1 − 2

2 , il suffit que p = (1 − 1

) . . . (1 −

)(1 −

)

2

pour que p ≥ 1

on a (1 − j

2b ) ∼ e

on a alors (1 − 1

(− j

2b )

il faut donc que e

2b ) . . . (1 − k −1

2b ) ∼ e

2b )(1 − 2

(− k (k−1)

2b+1 )

≤ 1

2

(− k (k−1)

2b+1 )

45 / 66

Paradoxe d’anniversaire et sécurité wifi (WEP)

Les fonctions de Hachage

la clé de 104 bits est tapé manuellement (13 caractères). La clé

est fixe

ce qui varie est le vecteur d’initialisation (24 bits) échangé entre le

point d’accès et le PC.

il ya 224 possibilités du IV. presque 16 millions possibilités

Par le paradoxe des anniversaires, il suffit d’à peu près 4824

échanges pour qu’il y ait plus d’une chance sur deux pour que le

même IV soit utilisé.

Ainsi, la sécurité d’une clé de 104 bits n’était que virtuelle dans

WEP. La vraie sécurité était sur 24 bits seulement !

WEP est remplacé par WPA (utilise RC4 mais change IV à

chaque paquet) et WPA2 (utilise AES).

46 / 66

Structure générale d’une fonction de hachage

Les fonctions de Hachage

47 / 66

Secure Hash Algorithm (SHA)

Les fonctions de Hachage

SHA a été conçu par "National Institute of Standards and

Technology (NIST)" et publié comme "federal information

processing standard" (FIPS 180) en 1993

a été revisé en 1995 comme SHA-1

Basé sur la fonction de hachage MD4

Produit un condensé de taille 160-bit

En 2002 NIST produit une version révisée du standard pour

définir 3 autres de SHA avec des longueurs 256, 384, and 512

Connus comme SHA-2

48 / 66

Comparaison des versions de SHA

Les fonctions de Hachage

49 / 66

SHA-512

Les fonctions de Hachage

50 / 66

SHA-512 : traitement d’un bloc de 1024-Bit

Les fonctions de Hachage

51 / 66

SHA-512 : Mise à jour des buffers

Les fonctions de Hachage

52 / 66

SHA-512 : traitement du message Mi

Les fonctions de Hachage

53 / 66

Publicité

Problèmes et contre-mesure des problèmes de sécurité

Plan

1 Principes de la Cryptographie asymétrique

2 RSA

3 Partage de clé de Diffie-Hellman

4

Les fonctions de Hachage

5 Problèmes et contre-mesure des problèmes de sécurité

6 MAC

7 Signature numérique

54 / 66

Problèmes et contre-mesure des problèmes de sécurité

Différents types d’attaques/problèmes ds un réseau

Divulgation des messages =⇒ Sol : cryptage

Analyse de trafic =⇒ Sol : cryptage

Mascarade : insertion de message depuis une source frauduleuse

=⇒ Sol : Authentification du message

modification de contenu : insertion, suppression, transposition et

modification =⇒ Sol : Authentification du message

modification en temps : retard ou rediffusion (replay) de message

=⇒ Sol : Authentification du message

Répudiation de la source : Déni de transmission du message par

la source =⇒ Sol : Signature numérique

Répudiation de la destination : Déni de réception du message par

le destinataire =⇒ Sol : Signature numérique

55 / 66

Problèmes et contre-mesure des problèmes de sécurité

Les techniques d’authentification de message

1 Les fonction de hachages : une fonction qui accepte comme

entrée n message de longueur variable et fait sortir un condensé

de longueur fixe. Le condensé est l’authentificateur du message

(déjà vu)

2 Le cryptage du message : le ciphertext du message constitue son

authentificateur

3 Le MAC (Message authentication code) : une fonction du

message et d’une clé secrète qui produisent une sortie de

longueur fixe MAC ce qui constitue l’authentificateur du message

56 / 66

Problèmes et contre-mesure des problèmes de sécurité

plusieurs scénarios d’utilisation du cryptage

57 / 66

Plan

MAC

1 Principes de la Cryptographie asymétrique

2 RSA

3 Partage de clé de Diffie-Hellman

4

Les fonctions de Hachage

5 Problèmes et contre-mesure des problèmes de sécurité

6 MAC

7 Signature numérique

58 / 66

MAC

MAC

Connu aussi par fonction de hachage à clé

utilisé lorsque deux entités partageant la même clé pour

authentifier l’information échangée entre eux

Prend comme entrée une clé secrète K et un bloc de donnée M et

produit un MAC=C(K,M)

le MAC est associé au message lors de son envoi

Si l’intégrité du message doit être vérifié, la fonction MAC est

appliqué au message et le résultat est comparé au MAC associé

(reçu)

un hacker qui veut modifier le message sera incapable de modifier

le MAC sans la connaissance de la clé secrète.

Le MAC n’est pas une signature numérique

59 / 66

Utilisations basiques du MAC

MAC

60 / 66

Cryptage authentifié

MAC

Protèger la confidentialité et fournir l’authentification en meme

temps

Différent approches :

Hash-then-encrypt : E(K , (M||H(M))

MAC-then-encrypt : E(K 2, (M||MAC(K 1, M))

Encrypt-then-MAC : C = E(K 2, M), T = MAC(K 1, C)

Encrypt-and-MAC : C = E(K 2, M), T = MAC(K 1, M)

decryptage et la vérification est facile

61 / 66

Plan

Signature numérique

1 Principes de la Cryptographie asymétrique

2 RSA

3 Partage de clé de Diffie-Hellman

4

Les fonctions de Hachage

5 Problèmes et contre-mesure des problèmes de sécurité

6 MAC

7 Signature numérique

62 / 66

Signature numérique

Signature numérique

Similaire qu’au MAC

le condensé du message est chiffré par la clé privée de l’émetteur

du message

N’importe quelle personne connaissant la clé publique de

l’émetteur peut vérifier l’intégrité du message

un hacker qui veut modifier le message a besoin de connaître la

clé privée de l’émetteur

3 propriétés :

elle doit vérifier l’auteur, le temps et la date du document signé

elle doit authentifier le contenu au temps de la signature

elle doit être vérifiée par une tierce partie pour résoudre les

disputes

63 / 66

Modèle général de la signature numérique

Signature numérique

64 / 66

Modèle détaillé de la signature numérique

Signature numérique

65 / 66

2 approches de la signature numérique

Signature numérique

66 / 66