Vous êtes sur la page 1sur 14

Cryptage asymétrique

Cryptage asymétrique
• Utilisation d’une paire de clés:
– Publique: Connue par tout le monde, utilisée généralement pour crypter ou
vérifier la signature des messages.
– Privée: Connue uniquement par le détenteur, utilisée pour décrypter et signer
des messages.
• Impossible de trouver la clé privée à partir de la clé publique.
• Exemples: RSA, Diffie-Hellman, El Gamal.
• Généralement dix fois plus lent que le cryptage symétrique.
• Utilisé généralement pour
– Cryptage / décryptage: assurer la confidentialité.
– Signature numérique: assurer l’authentification et la non répudiation.
– Distribution de clés: se mettre d’accord sur une clé de session.
• Clés à grande taille (ex: RSA: 1024-2048-…)
Cryptage asymétrique
RSA
• Développé par Rivest, Shamir & Adleman à MIT
en 1977, publié en 1978
• Le plus connu et le plus utilisé comme algorithme
de cryptage asymétrique.
• Utilise des entiers très larges 1024+ bits
• Le fonctionnement du crypto-système RSA est
basé sur la difficulté de factoriser de grands entiers.
Rappel
• Deux nombres entiers sont premiers entre eux si leur PGCD (Plus Grand Commun
Diviseur) vaut 1.
• Exemple : 24 et 35 sont-ils premiers entre eux?
• 1.On décompose 24 et 35 en facteurs.
– 24 = 6 x 4| 12 x 2| 8 x 3|24 x 1
– 35=7 x 5|35 x 1.

• 2.On regarde les facteurs identiques dans les deux lignes. Il y a 2 fois le nombre 1,
et c'est le seul diviseur commun. Donc 24 et 35 sont premiers entre eux.
– On écrit:PGCD(24;35) = 1

• Attention ! S'il y avait deux fois un nombre plus grand que 1, les nombres ne
seraient pas premiers entre eux.
RSA: algorithme
• Etapes:
1. Sélectionner deux entiers premiers entre eux « p » et « q »
2. Calculer n = p x q
3. Calculer φ(n)=(p-1)(q-1)
4. Sélectionner « e » tel que: pgcd(φ(n),e)=1 ; 1<e<φ(n)
 En général « e » est un entier de petite taille.
5. Calculer d=e-1 mod φ(n). En d’autre terme: d.e = 1 mod (φ(n))
6. Clé publique: Kpu={e,n}
7. Clé privée Kpr = {d,n}
• Pour crypter un message M < n, l’émetteur:
– Obtient une clé publique du récepteur et calcule « C= Me mod n »
• Pour décrypter un message crypté C le récepteur
– Utilise sa clé privée et calcule « M = Cd mod n »
RSA: exemple
Problème de RSA
• Complexité algorithmique de la méthode:
– recherche de nombres premiers de grande taille, et choix de clés
très longue
– Réalisation des opérations modulo n.
• Problème d’implémentation sur les équipements disposants de
faible puissance de calcul (ex: cartes bancaire, stations mobiles,
etc.)
• La méthode est officiellement sûr si des contraintes de longueur des
clés et d’usage sont respectées.
•  Solution: Utilisation de RSA pour l’échange des clés secrètes de
session d'un algorithme symétrique à clés privées.
Fonction de Hachage: propriété
mathématique
• Entrée: message M avec contenu et taille arbitraire.
• Sortie: message de taille fixe h=H(M).
• H(M) est appelé condensât, ou empreinte, ou fingerprint, ou message
digest
• Irréversible:
– Étant donnée h, il est difficile de trouver x tel que: h = H(x)
– Complexité de l’ordre de 2n, n est le nombre de bits du digest.
• Résistance forte à la collision:
– Étant donné x, il est impossible de trouver y avec H(x) = H(y)
– Il est impossible de trouver une paire x, y tel que H(x) = H(y)
• Calcul facile et rapide (plus rapide que le cryptage symétrique).
Fonction de Hachage: Principe
Fonction de Hachage: Exemple
Signature numérique
• Idée clé:
– Le Hash (résultat de la fonction de hachage) d’un message est
crypté avec la clé privée de l’émetteur.
– La clé publique est utilisée pour la vérification de la signature
• Soit:
– M: message à signer, H: fonction de hachage
– Kpr, Kpu: paire de clés privée / publique de l’émetteur.
– E / D: fonction de cryptage / Décryptage en utilisant Kpu / Kpr.
• En recevant (M, EKpr(H(M))), le récepteur vérifie si:
H(M)=DKpu(EKpr(H(M)))
Signature numérique: création
Signature numérique: vérification

Vous aimerez peut-être aussi