Chiffrement asymétrique RSA
Robin Boucher - Cryptography Portfolio
Chiffrement Asymétrique RSA
RSA est l'algorithme asymétrique le plus répandu. Plus lent que AES mais indispensable pour :
- Authentification : Vérifier l'identité via des signatures numériques
- Non-répudiation : Preuve d'origine incontestable des messages
- Échange sécurisé : Transmettre les clés AES confidentiellement
RSA comporte une paire de clés inséparables :
• Partageable à tous
• Chiffre les données
• Gardée secrète
• Déchiffre et signe
Une fois la connexion établie, AES prend le relais pour chiffrer rapidement les échanges.
1. Principes de base du RSA
RSA est un algorithme de chiffrement asymétrique qui utilise une paire de clés : une publique pour chiffrer et une privée pour déchiffrer. Il repose sur la difficulté de factoriser de grands nombres entiers.
Fonctionnement mathématique
- Génération des clés : Choix de deux nombres premiers p et q, calcul de n = p*q et φ(n) = (p-1)*(q-1)
- Clé publique : (n, e) où e est premier avec φ(n)
- Clé privée : (n, d) où d est l'inverse modulaire de e modulo φ(n)
- Chiffrement : c = me mod n
- Déchiffrement : m = cd mod n
2. Attaques sur RSA
RSA peut être vulnérable à plusieurs types d'attaques si mal implémenté ou mal utilisé :
- Factorisation : Si n est trop petit ou si p et q sont trop proches
- Attaque par texte clair connu : Si le même message est envoyé à plusieurs destinataires avec le même e
- Timing attack : Si l'implémentation n'est pas à temps constant
- Padding oracle : Si le padding est mal géré (ex: PKCS#1 v1.5)
3. RSA sécurisé en pratique
Pour une utilisation réelle, plusieurs précautions sont nécessaires :
Bonnes pratiques
- Taille des clés : Au moins 2048 bits (3072 ou 4096 recommandé)
- Padding : Utiliser OAEP plutôt que PKCS#1 v1.5
- Génération des nombres premiers : Méthodes cryptographiquement sûres
- Protection des clés : Stockage sécurisé (HSM, TPM)
4. Applications pratiques de RSA
RSA est utilisé dans de nombreux protocoles et applications :
Cas d'utilisation
- Échange de clés : TLS, SSH
- Signature numérique : Authentification de documents
- Chiffrement de petites données : Clés symétriques, mots de passe
- Systèmes de vote électronique : Confidentialité et vérifiabilité
À retenir sur RSA
- RSA est un algorithme asymétrique basé sur la difficulté de factorisation
- Les clés doivent être suffisamment grandes (≥2048 bits)
- Toujours utiliser des schémas de padding sécurisés (OAEP)
- En pratique, préférer des bibliothèques cryptographiques éprouvées
- RSA est lent - ne pas l'utiliser pour chiffrer de gros volumes de données