Chiffrement RSA avec une clé publique
Chiffrez un court message avec une clé publique RSA (PEM) en RSA-OAEP SHA-256, OAEP SHA-1 ou PKCS#1 v1.5. Générez une paire de test en un clic. Tout en local.
OAEP est le remplissage recommandé. MGF1 utilise le même hachage, comme Web Crypto et openssl pkeyutl -pkeyopt rsa_oaep_md.
RSA ne chiffre que des données courtes : avec une clé de 2048 bits, au maximum 190 octets (OAEP SHA-256), 214 octets (OAEP SHA-1) ou 245 octets (PKCS#1 v1.5). Pour des données plus longues, chiffrez-les avec AES et ne chiffrez que la clé AES avec RSA.
Le chiffrement RSA est aléatoire : chiffrer deux fois le même texte donne deux textes chiffrés différents, qui se déchiffrent tous deux correctement.
S'exécute entièrement dans votre navigateur. Vos données ne sont jamais envoyées.
Qu'est-ce que Chiffrement RSA ?
Chiffre un court message ou une clé symétrique avec une clé publique RSA au format PEM (SPKI BEGIN PUBLIC KEY, PKCS#1 BEGIN RSA PUBLIC KEY, un certificat X.509 ou une clé privée dont la partie publique est extraite). Seul le propriétaire de la clé privée correspondante peut déchiffrer le résultat.
Comment utiliser Chiffrement RSA
- Collez la Clé publique (PEM) du destinataire, ou cliquez sur Générer une paire de clés de test (2048 bits) pour essayer.
- Choisissez le Remplissage : RSA-OAEP (SHA-256) est recommandé ; adaptez-vous à ce qu’attend le code récepteur.
- Saisissez le Texte en clair (ou passez l’encodage de l’entrée sur Hex pour chiffrer des octets bruts comme une clé AES).
- Cliquez sur Chiffrer et copiez le texte chiffré en Base64 ou en Hex.
Exemple
« Hello RSA » avec une clé publique de 2048 bits, RSA-OAEP (SHA-256), sortie Base64
Une chaîne Base64 de 344 caractères (256 octets) qui change à chaque exécution
RSA-OAEP est aléatoire : il n’existe donc pas de sortie fixe ; la déchiffrer avec la clé privée renvoie « Hello RSA ».
Quand utiliser Chiffrement RSA
Utilisez RSA pour chiffrer de petits secrets – un mot de passe, un jeton ou une clé AES générée aléatoirement – pour quelqu’un dont vous avez la clé publique. Ne l’utilisez pas pour de gros volumes : chiffrez les données avec AES et ne chiffrez que la clé AES avec RSA (chiffrement hybride), ou utilisez PGP. Préférez OAEP ; n’employez PKCS#1 v1.5 que si un système hérité l’exige.
Comment fonctionne Chiffrement RSA
Le chiffrement RSA calcule c = mᵉ mod n sur le message rempli. OAEP (PKCS#1 v2.2) masque le message avec MGF1 en SHA-256 ou SHA-1 et des octets de graine aléatoires ; PKCS#1 v1.5 ajoute en tête un remplissage aléatoire non nul. Le remplissage étant aléatoire, chiffrer deux fois le même texte donne des textes chiffrés différents. Le texte chiffré a la longueur du module (256 octets pour des clés de 2048 bits). La taille maximale du message est de k − 2·hLen − 2 octets pour OAEP et de k − 11 pour v1.5 (190, 214 et 245 octets pour une clé de 2048 bits). Les clés sont analysées et le chiffrement est effectué avec node-forge ; les résultats sont interopérables avec OpenSSL, Web Crypto et Node.js.
Cas d'utilisation courants
- Chiffrer une clé de session AES pour des tests de chiffrement hybride
- Vérifier que votre serveur sait déchiffrer un texte OAEP-SHA256 venu d’un navigateur
- Envoyer un court secret à quelqu’un qui vous a donné sa clé publique
- Produire des données de test PKCS#1 v1.5 pour une API héritée
- Comprendre comment les limites de taille de message RSA dépendent de la taille de clé et du remplissage
Note de Sécurité
Les clés et les messages sont traités uniquement dans votre navigateur. Ne collez pas de clés privées de production sur un site que vous ne contrôlez pas : générez plutôt une paire de clés de test.
Questions Fréquentes
Pourquoi mon message est-il trop long ?
RSA ne peut chiffrer que quelques centaines d’octets. Avec une clé de 2048 bits, OAEP SHA-256 en autorise 190. Chiffrez les données plus longues avec AES et n’utilisez RSA que pour la clé AES.
Quel remplissage choisir ?
RSA-OAEP avec SHA-256 pour les nouveaux systèmes (Web Crypto RSA-OAEP avec hash: 'SHA-256', OpenSSL pkeyutl -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256). OAEP SHA-1 est la valeur par défaut de nombreuses anciennes bibliothèques (Java RSA/ECB/OAEPWithSHA-1AndMGF1Padding). PKCS#1 v1.5 uniquement pour la compatibilité héritée.
Pourquoi le texte chiffré change-t-il à chaque fois ?
Les deux remplissages ajoutent des octets aléatoires avant le chiffrement. Cela empêche un attaquant de deviner de courts messages en chiffrant lui-même des candidats.
Puis-je chiffrer avec une clé privée ?
Vous pouvez coller une clé privée : sa moitié publique sert au chiffrement. « Chiffrer avec la clé privée » au sens de signer est une autre opération, non proposée ici.