1
1
Cryptographie à clé publique
2
Chiffrement asymétrique - 2
Les systèmes à clé publique
Systèmes symétriques : même clé pour le chiffrement et le déchiffrement
Problèmes : transmission de la clé
1 clé par destinataire
Système asymétrique :2 clés distinctes avec impossibilité de déduire l’une de l’autre.
Une des clés peut être publiée et distribuée librement (sous certaines conditions)
3
Chiffrement asymétrique - 3
Schéma général
TexteClair M
TexteChiffré C
TexteClair M
Algo. Algo.
Clé deChiffrement
SK
Clé deDéchiffrement
PK
4
Chiffrement asymétrique - 4
Application des systèmes à clé publique
Classification des utilisations en 3 catégories :
Chiffrement/déchiffrement (fournir le secret)
Signatures numériques (fournir l'authentification)
Échange de clés (ou des clefs de session)
quelques algorithmes conviennent pour tous les usages, d'autres sont spécifiques à un d’eux
5
Chiffrement asymétrique - 5
Les systèmes à clé publique
Concept date de 1976 – Diffie et Hellman
Première implémentation : 1978 – Rivest, Shamir, Adleman (RSA)
La sécurité de tels systèmes repose sur des problèmes calculatoires
RSA : factorisation de grands entiers : NP
ElGamal : logarithme discret d’un corps fini : NP
Chor- Rivest : problème du sac- à- dos : NPC
…
6
Chiffrement asymétrique - 6
Sécurité des schémas à clé publique
La recherche des clés par force brute est toujours théoriquement possible
mais les clefs utilisées sont trop grandes (> 512bits)
la sécurité se fonde sur une assez grande différence en difficulté entre les problèmes faciles (dé/chiffrement) et difficiles (cryptanalyse)
plus généralement le problème difficile est connu, il est juste trop difficile à réaliser en pratique
exige l'utilisation des nombres très grands
Constatation : lent comparé aux chiffrements symétriques
7
Chiffrement asymétrique - 7
Les systèmes à clé publique
Remarque :Un système à clé publique ne peut jamais être inconditionnellement sûr.
Essayer tous les M possibles donnant C (connu) avec la clé publique
→ étude exclusive de la sécurité calculatoire de ces systèmes
Fonction à sens unique à trappe.Sens unique : Ek facile (injective), Dk difficile
Remarque : @ fonction démontrée
Trappe : la connaissance de la clé de déchiffrement rend la fonction bijective
8
8
Systèmes symétriques
Rappels théoriques
9
Chiffrement asymétrique - 9
Rappels
Théorème de Fermat :Si p est premier, a>0 et p - a :
ap-1 ≡ 1 mod pap ≡ a mod p
Fonction totient d’EulerSi p est premier : φ(p) = p- 1
Si p,q sont premier et n=pq : φ(n) = (p- 1)(q- 1)
Théorème d’EulerSi (a,n) :
aφ(n) ≡ 1 mod naφ(n)+1 ≡ a mod n
10
Chiffrement asymétrique - 10
Rappels
Corollaire du théorème d’EulerSi p,q sont premiers, n=pq et 0 < m < n
mφ(n)+1 = m(p-1)(q-1)+1 ≡ m mod nMkφ(n) + 1 ≡ [(mφ(n))k * n] mod n
≡ ((1)k * m) mod n (par le th d’Euler)≡ m mod n
Tests de primalité :Par les tests de Fermat, Solovay- Strassen, …
Théorème du reste chinois :Permet de manipuler de grand nombre modulo M en termes de tuples de plus petit nombres
11
Chiffrement asymétrique - 11
Rappels
Algorithme d’Euclide :Calcul du pgcd
Algorithme d’Euclide étenduCalcul du pgcd et de l’inverse modulaire
12
12
Merkle - Hellman
13
Chiffrement asymétrique - 13
Introduction
Définition du problème :Soit un havresac de capacité T et un ensemble S d’objets qui occupent les espaces S = {a1,a2,a3,…,an}
Trouver un vecteur de sélection V={v1,v2,v3,…,vn} satisfaisant la relation ∑(ai*vi) = T
Exemple :a = {17, 38, 73 ,4 ,11 ,1} et T = 53 = 38 + 4 + 11 donc V = {0, 1, 0, 1, 1, 0}
Pas de solution pour T = 45
Si T et a sont très grands, c’est beaucoup plus compliqué
Problème du Sac à dos : empiler différent types d’objets avec chacun un poids différents : faire un nouveau tas d’objet avec un poids total donné
14
Chiffrement asymétrique - 14
Principe
Idée de base : coder le message comme une solution d’une suite de problèmes d’empilement.
Un bloc de texte en clair de longueur égale au nombre d’objets dans le tas sélectionnerait des objets
Les bits du texte en clair correspondraient aux valeurs des vi : un 1 signifierait que l’objet est présent et 0 un objet absent
Et le texte chiffre serait la somme résultante
Exple :M : 1 1 1 0 0 1 0 1 0 1 1 0
Tas : 1 5 6 11 14 20 1 5 6 11 14 20
C : 1+5+6+20 = 32 5+11+14 = 30
15
Chiffrement asymétrique - 15
Empilement et clés
Il y a 2 problèmes d’empilement1 soluble en temps linéaire
1 soluble en temps exponentiel
L’empilement facile peut être transformé pour créer un empilement difficile
Clé publique : empilement difficile, peut juste chiffrer
Clé privée : empilement facile qui donne un moyen simple de déchiffrer les messages
Ceux qui ne connaissent pas la clé privée sont obligé de résoudre le problème d’empilement difficile
16
Chiffrement asymétrique - 16
Empilement facile
Empilement facile :Si la liste des poids est super- croissante (tout terme est plus grand que la somme des termes qui la précède)
Solution : prendre le poids total et le comparer avec le plus grand nombre de la suite.
Si ce poids total est < à ce nombre, alors il n’est pas dans le tas
Si ce poids total est > à ce nombre, alors il est dans le tas
Réduire le poids du tas à créer de ce nombre et passer au plus grand nombre suivant de la suite
Répéter jusqu’à ce que ce soit terminé
Si le poids total a pu être ramené à 0 : il y a une solution
17
Chiffrement asymétrique - 17
Merkle-Hellman
Empilement difficile :On ne connaît pas d’algorithme rapide
Tester méthodiquement toutes les solutions possibles
Ces algorithmes sont exponentiels
Merkle-Hellman : exploite cette propriétéClé privée : suite de poids super- croissante
Clé publique : suite de poids pour un problème d’empilement normal avec la même solution
Les auteurs ont trouvé une technique pour transformer un tas super- croissant en un havresac régulier correspondant
18
Chiffrement asymétrique - 18
Calcul de la clé publique
Calcul de la clé publique à partir de la clé privéePrendre une suite supercroissante
La multiplier par n modulo m avecm plus grand que la somme de tous les nombres de la suite
n ne doit avoir aucun facteur commun avec aucun nombre de la suite
19
Chiffrement asymétrique - 19
Algorithme
Chiffrement : additionner les termes où un 1 apparaît
Déchiffrement :Calculer n-1 tel que n*n-1 ≡ 1 mod m
Multiplier chaque valeur du texte chiffré par n-1 mod m
En pratique250 éléments
Chaque terme a une longueur de 200 à 400 bits
Le module a une longueur de 100 à 200 bits
20
Chiffrement asymétrique - 20
Exemple
Générer S qui est une séquence super-croissantede m entiers: par exemple 1,2,4,9
Choisir un multiplicateur w et un module n
Soit w = 15 et n = 171 * 15 mod 17 => 15
2 * 15 mod 17 => 13
4 * 15 mod 17 => 9
9 * 15 mod 17 => 16
Le havresac difficile est donc H = {15, 13, 9, 16}
21
Chiffrement asymétrique - 21
Exemple Le message est traité comme une séquence de bits
P = [p1, p2, p3, ….. , pk]
On le divise en blocs de m bitsP0 = [p1, p2, p3, ….. , pm], P1 = [pm+1, pm+2, pm+3, ….. , p2*m], ……..
On utilise chaque bloc comme vecteur V du problème de havresac
Soit P = 0100101110100101 => 0100 1011 1010 0101[0, 1, 0, 0] * [15, 13, 9, 16] => 13[1, 0, 1, 1] * [15, 13, 9, 16] => 40[1, 0, 1, 0] * [15, 13, 9, 16] => 24[0, 1, 0, 1] * [15, 13, 9, 16] => 29
Le message encrypté est donc 13, 40, 24, 29 en utilisant le havresac public (la clef publique) H = [15, 13, 9, 16]
22
Chiffrement asymétrique - 22
Exemple
Le destinataire légitime connaît le havresac simple S et les valeurs de w et de n
Il peut donc déterminer w-1
Exemple avec w = 15 et n = 17, w-1 est 8: 15 * 8 = 120 = 7 * 17 + 1
Exemple13 * 8 mod 17 = 104 mod 17 = 2 = [1, 2, 4, 9] * [0100]
40 * 8 mod 17 = 320 mod 17 = 14 = [1, 2, 4, 9] * [1011]
24 * 8 mod 17 = 192 mod 17 = 5 = [1, 2, 4, 9] * [1010]
29 * 8 mod 17 = 232 mod 17 = 11 = [1, 2, 4, 9] * [0101]
et le texte en clair est 0100 1011 1010 0101 =>0100101110100101
23
Chiffrement asymétrique - 23
Sécurité :
Herlestam (1978) : souvent un bit de texte clair pouvait être retrouvé
Shamir (1979) : l’algorithme peut être cassé dans certaines circonstances
Shamir-Zippel (82-83-84) : failles dans la transformation qui permettent de reconstruire la suite super-croissante à partir de la suite normale
24
24
RSA (Rivest-Shamir-Adleman)
Présentation
Il est basé sur un chiffrement exponentiel.
Sa sécurité repose sur la fonction unidirectionnelle suivante:
Le calcul du produit de 2 nombres premiers est aisé.
La factorisation d'un nombre en ses deux facteurs premiers est beaucoup plus complexe.
25
Chiffrement asymétrique - 25
Généralités
par Rivest, Shamir et Adleman du MIT en 1977
Système le + connu et le + largement répandu
basé sur l'élévation à une puissance dans un champ fini sur des nombres entiers modulo un nombre premier
Le nombre d’exponentiation prend environ O((log n)3) opérations → facile
emploie de grands nombres entiers (par exemple 1024 bits)
26
Chiffrement asymétrique - 26
Généralités
Chiffrement : C = Me mod n
Déchiffrement : M = Cd mod n
Les deux clés d et e sont interchangeables
sécurité due au coût de factoriser de grands nombres
Le nombre de factorisation prend environ O(e log n log log n) opérations → difficile
Usage : confidentialité, authentification, combinaison des 2
27
Chiffrement asymétrique - 27
Principe
2 clés :Clé publique : une paire (e,n)
Clé privée : une paire (d,n)
Première étape : choisir nValeur assez élevée
Produit de 2 nombres premiers très grands p et q
Typiquement : p et q ont 100 chiffres décimaux ⇒ n a 200 chiffres
Taille de n = 512 bits, ou 768 ou 1024 selon le niveau de sécurité souhaité
28
Chiffrement asymétrique - 28
Principe
Deuxième étape :Choisir un très grand entier e
Relativement premier à (p-1)*(q-1)Astuce : choisir e comme un nombre plus grand que p-1 et q-1
Choisir d tel queed ≡ 1 mod (φ(n))
Troisième étape : on jette p et q
29
Chiffrement asymétrique - 29
Justification de l’inversibilité
Par le théorème d’Euler et de Fermat :aφ(n) ≡ 1 mod n ⇔ aφ(n) mod n = 1 où (a,n)=1
Dans le RSA on a :n = p*q
φ(n) donne le nombre d’entiers positifs plus petits que n et relativement premiers à n
Si p est premier, φ(p)=p-1
Si n = p*q, avec p et q premiersφ(n) = φ(p)*φ(q)=(p-1)*(q-1)
30
Chiffrement asymétrique - 30
Démonstration
A cause de la façon de choisir e et d e*d ≡ 1 mod φ(n) = k*φ(n) + 1 pour un certain k
Puisque p est premier (corollaire d’Euler)Mp-1 ≡ 1 mod p ; Mk*φ(n) ≡ 1 mod p ; Mk*φ(n)+1≡ M mod p
Même chose pour qMk*φ(n)+1≡ M mod q
Si on combine :(Me)d = Me*d = Mk*φ(n)+1 ≡ M mod p = M mod q = M mod n = M
31
Chiffrement asymétrique - 31
Résumé :
1. Génération de 2 nombres premiers p et q
2. Calcul de n = p*q
3. Déterminer e tel que 3 < e < φ(n)
4. Calculer d tel que ed ≡ 1 mod φ(n)
5. Clés publique : (e,n) privée : (d,n)
P et q doivent rester secrets
6. C = Me mod n et M = Cd mod n (confidentialité)
32
Chiffrement asymétrique - 32
Exemple
Soient p = 11, q = 13 → n = 143
φ(n) = 120 (nombre d’éléments relativement premiers à n et < n)
e = 23 (on a (e,φ(n)) ce qui permettra de trouver d)
d = 47 (inverse modulaire de e sur Zn)
Clé publique : (23,143) – clé privée : (47,143)
1 – p et q sont bien premiers
2 – soient 2 nbres aléatoires : 61% de chances que relativement premiers entre eux
Remarque : clé de 8 bits !!!!!
33
Chiffrement asymétrique - 33
Exemple …
Normalement, les données sont compressées puis découpées en morceaux de taille < n
Codage pour l’exemple
1 car = 1 car ASCII :
1 - < n car les opérations effectuées sont des exponentiations modulo n.
34
Chiffrement asymétrique - 34
Exemple …
Le déchiffrement s’effectue en utilisant la clé (47,143)
Rmq : ca fonctionne car ascii : 0-127 et 127 < 143
N doit être plus grand que les nombres que l’on souhaite chiffrer….
35
Chiffrement asymétrique - 35
Remarques
Il n’est pas très astucieux de choisir d’aussi petites valeurs :
On peut retrouver d très facilement :143 ne peut pas être autre chose que 11*13
On peut donc le retrouver en 11 essais
En pratique : prendre de très grandes valeurs de p et q
Pour trouver ces grandes valeurs : Jacobi + test de Solovay-Strassen
Rabin-Miller
…
36
36
RSA
Sécurité
37
Chiffrement asymétrique - 37
Attaques
3 approches à attaquer RSA :recherche par force brute de la clé (impossible étant donné la taille des données)
attaques mathématiques (basées sur la difficulté de calculer φ(n), la factorisation du module N)
attaques de synchronisation (sur le fonctionnement du déchiffrage)
L'approche mathématique prend 3 formes : factoriser n=p*q et par conséquent trouver φ(n) et puis d
déterminer φ(n) directement et trouver d
trouver d directement
38
Chiffrement asymétrique - 38
Problème de la factorisation
Connaissances actuelles sur la factorisation lentes améliorations au cours des années
Au mieux 130 chiffres décimaux (512) en août 99
meilleure amélioration : optimisation des algorithmes
excepté un changement dramatique : RSA- 1024 est sûr S’assurer p, q ont une telle taille et respecter les autres contraintes
Remarque :trouver les 2 facteurs premiers p et q d’un nombre n=p*q où p et q sont de l’ordre 10100 ⇒ n a une longueur égale à 200 chiffres décimaux ' 30 millions d’années pour le casserdéterminer si un nombre de 200 chiffres est premier ou non : moins de 5 minutes (en 2002)
39
Chiffrement asymétrique - 39
Attaque de synchronisation (timing attack)
Développé dans le milieu des années 90's
Exploitation des variations de synchronisation entre les opérations opérations
par exemple la multiplication par petit contre grand nombre
ou instruction IF changeant les instructions a exécuter
Impliquer la taille d'opérande basée sur le temps pris
RSA exploite le temps pris dans l'élévation à une puissance
contre- mesures employer des temps constant d'élévation à une puissance
ajouter des délais aléatoires
rendre non visible les valeurs utilisées dans les calculs
40
Chiffrement asymétrique - 40
Conseils d’utilisation du RSA
Ne jamais utiliser de valeur n trop petite
Ne pas utiliser de clé secrète trop courte (< )
N’utiliser que des clés fortes (p-1 et q-1 ont un grand facteur premier)
Ne pas chiffrer de blocs trop courts
Ne pas utiliser de n communs à plusieurs clés
Si (d,n) est compromise ne plus utiliser n
Ne jamais chiffrer ou authentifier un message provenant d’un tiers sans le modifier
41
Chiffrement asymétrique - 41
Exemples – Rivest : 1978
Le meilleur algorithme connu pour factoriser un nombre de 129 digits requiert :
40 000 trillions d’années soit 40*1015 années
En supposant l’utilisation d’un superordinateur capable d’effectuer
1 multiplication de nombres à 129 digits en 1 ns
Rappel : age de l’univers : 1010 années
42
Chiffrement asymétrique - 42
Records de factorisation de grands nombres
43
Chiffrement asymétrique - 43
Estimations
44
Chiffrement asymétrique - 44
45
Chiffrement asymétrique - 45
Comparaisons RSA - DES
46
Chiffrement asymétrique - 46
Comparaisons RSA - DES
47
Chiffrement asymétrique - 47
Challenge RSA
48
48
El Gamal
49
Chiffrement asymétrique - 49
Présentation
Algorithme à clef publique, datant de 1984, utilisé surtout comme base de la norme U.S. de signature électronique
Basé sur la difficulté de calculer des logarithmes discontinus sur des champs finis.
50
Chiffrement asymétrique - 50
Méthode pour générer les clés
Choisir un nombre premier p très grand et tel que p- 1 a un grand facteur premier
2 nombres aléatoires g et x, tels queg ∈ (0…p – 1) et ∀z ∈ (1…p-2) gz ≠ 1 mod p, x ∈ (1…p-2)
Ensuite calculer y = gx mod p
Clé publique : (y,g,p)g et p peuvent être partagée par un groupe d’utilisateurs
Clé privée : (x)
51
Chiffrement asymétrique - 51
Chiffrement El Gamal
ChiffrementSoit M, k un nombre aléatoire, (k,p- 1)=1
K n’est connu que de celui qui chiffre et différent à chaque msg
Calculer :a = gk mod p
b = yk M mod p
La paire (a, b) forme le texte chiffré → C = 2M
Déchiffrement :M = b/ax mod p
52
Chiffrement asymétrique - 52
Remarque
yk est un masque qui est appliqué sous forme multiplicative à M.
Pour déchiffrer le message, il faut soit trouver directement un masque jetable (en l’absence de la connaissance de a, yk est une suite parfaitement imprévisible)
Soit trouver la clé privée x qui est la solution de y = gx
mod p (donc trouver le logarithme discret)
53
Chiffrement asymétrique - 53
Inversibilité de la méthode
Puisque :ax ≡ gkx (mod p)
On a :b/ax ≡ yk M /ax (mod p) ≡ gxk M / gxk ≡ M(mod p)
Ou encore (Dk(Ek(M))=M)Dk(Ek(M)) = ((M*yk mod p)/(gk mod p)x) mod p
= ((M*yk mod p)/(gxk mod p)) mod p
= ((M*yk mod p)/(yk mod p)) mod p = M
54
Chiffrement asymétrique - 54
Exemple
Soient p=2579, g=2, x=765
Sk = (765)
Pk = (2579, 2 , 949) car 2765 mod 2579 = 949
Pour chiffrer M = 1299, on choisi k = 853a = 2853 mod 2579 = 435
b = 1299*949853 mod 2579 = 2396
On peut vérifier que effectivement :2396/(435765) mod 2579 = 1299
55
Chiffrement asymétrique - 55
Efficacité et sécurité
Calculs comparables à ceux du RSA → ordre de performance identique (2 fois plus lent)
Inconvénient : la taille des données chiffrée est 2* celle des données en clair
La recherche de la clé privée (x) à partir de la clé publique est équivalente au problème du logarithme discret (NP). MAIS il n’est pas prouvé que la cryptanalyse d’un message chiffré avec ElGamal soit équivalente au logarithme discret.
56
Chiffrement asymétrique - 56
Efficacité et sécurité
Les techniques de cryptanalyse de ElGamal sont directement liée à celles de Diffie-Hellman([Stinson]-ch5)
57
57
Comparaisons
58
Chiffrement asymétrique - 58
Asymétrique vs symétrique
Symétrique :Avantages
Rapidité (jusqu’à 1000 fois)
Facilité d’implantation sur hardware
Taille de clé : 128 bits (⇒ 16 caractères : mémorisable)
Inconvénients Nombre de clés à gérer
Distribution des clés (authentification, confidentialité)
Certaines propriétés (p.ex. signatures) sont difficiles à réaliser
59
Chiffrement asymétrique - 59
Asymétrique vs symétriqueAsymétriques :
Avantages :Nombre de clé à distribuer est réduit par rapport aux clés symétriquesDistributions des clés facilités : pas besoin de l’authentificationPermet de signer des messages facilement
Inconvénients :Taille des clésVitesse de chiffrement
Problèmes propres aux 2 systèmesLa gestion des clés ‘secrètes’ reste le maillon faibleSécurité basée sur des arguments empiriques plutôt que théorique
60
Chiffrement asymétrique - 60
Références internet
http://www.bibmath.net/crypto/complements
http://www.bibmath.net/crypto/moderne
http://www.ulb.ac.be/di/scsi/markowitch/crypto/
http://www.ift.ulaval.ca/~Mejri/cryptography/Notes/RSA.pdf
http://www.cryptologie.com/
http://abcdrfc.free.fr/rfc-vf/rfc2440/x1529.html
www.hack.gr/users/dij/crypto/overview/rsa.html
Home.ecn.ab.ca/~jsavard/crypto/publ05.html
http://193.48.37.48/~douillet/publications/crypto/node17.html
http://www.cryptosec.org/article.php3?id_article=10
http://cui.unige.ch/tcs/cours/crypto/crypto7/crypto7.html
http://members.tripod.com/irish_ronan/rsa/attacks.html
61
Chiffrement asymétrique - 61
Références bibliographiques
[Stinson] - ch5, ch6
[Stallings] – ch 9
[Schneier] – ch 19
[Natkin] - 2.3
62
Chiffrement asymétrique - 62
Questions
Vous devez pouvoir expliquerLe concept des systèmes à clés publique
L’algorithme du sac- à- dos (Merkle- Hellman)(principe, algorithme, justification, sécurité, …)
L’algorithme du RSA (principe, algorithme, justification, sécurité, …)
L’algorithme de ElGamal(principe, algorithme, justification, sécurité, …)
Vous devez pouvoir comparer et illustrer les différences entre les systèmes symétriques et asymétriques