Toolonit
  1. Accueil
  2. Chiffrement
  3. Chiffrer / déchiffrer en RSA

Chiffrement et déchiffrement RSA

Chiffrez avec une clé publique RSA et déchiffrez avec la clé privée (OAEP ou PKCS#1 v1.5).

Remplissage

Déchiffrez avec le remplissage utilisé pour chiffrer. OAEP avec SHA-256 est le choix moderne par défaut ; PKCS#1 v1.5 seulement pour les anciens systèmes.

Sortie en
Déchiffrer avec OpenSSL (le fichier .bin) :
openssl pkeyutl -decrypt -inkey private.pem -in ciphertext.bin -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256

Chiffrez un court secret avec la clé publique RSA de quelqu’un (ou avec son certificat) pour que seul le détenteur de la clé privée puisse le lire, ou déchiffrez un texte chiffré avec votre clé privée. Choisissez OAEP avec SHA-256 (recommandé), OAEP avec SHA-1 ou PKCS#1 v1.5 ; le résultat est en Base64 ou en hexadécimal et fonctionne avec OpenSSL. Tout s’exécute dans votre navigateur : les clés et les messages ne quittent jamais votre appareil. C’est gratuit et sans inscription.

Comment chiffrer et déchiffrer avec RSA

  1. Choisissez « Chiffrer » ou « Déchiffrer », puis collez la clé ou ouvrez un fichier de clé : une clé publique ou un certificat pour chiffrer, la clé privée (PKCS#8 ou PKCS#1) pour déchiffrer.
  2. Choisissez le remplissage : OAEP · SHA-256, sauf si l’autre partie a besoin d’autre chose.
  3. Saisissez le message, ou collez le texte chiffré en Base64 ou en hexadécimal. Le résultat apparaît au fil de la frappe.
  4. Copiez le résultat, ou téléchargez le texte chiffré en fichier .bin pour OpenSSL.

Fonctionnalités

  • Chiffrement avec une clé publique, un certificat ou la partie publique d’une clé privée ; déchiffrement avec la clé privée
  • OAEP avec SHA-256 (par défaut), OAEP avec SHA-1, ou PKCS#1 v1.5
  • Clés en PEM ou DER : SPKI, PKCS#1, PKCS#8 et certificats X.509, jusqu’à 16 384 bits
  • Texte chiffré en Base64 ou en hexadécimal, ou en fichier .bin ; déchiffre du Base64 ou de l’hexadécimal collé, ou un fichier .bin ouvert
  • Indique combien d’octets la clé et le remplissage permettent de chiffrer, et la commande openssl pkeyutl correspondante
  • S’exécute dans un worker WebAssembly de votre navigateur

Est-ce confidentiel ?

Oui. Le chiffrement et le déchiffrement s’exécutent dans votre navigateur, dans un worker WebAssembly ; les clés, les messages et les textes chiffrés ne sont jamais envoyés ni stockés.

Questions fréquentes

Quelle longueur peut avoir le message ?

RSA chiffre un seul bloc. Avec une clé de 2048 bits, cela fait jusqu’à 190 octets en OAEP SHA-256, 214 en OAEP SHA-1 et 245 en PKCS#1 v1.5 ; des clés plus grandes permettent davantage. Pour tout ce qui est plus long, chiffrez les données avec un chiffrement symétrique, ou utilisez l’outil « Chiffrement de fichiers ».

Pourquoi le texte chiffré change-t-il à chaque fois ?

Chaque remplissage ajoute des octets aléatoires avant le chiffrement : le même message donne donc un nouveau texte chiffré à chaque fois. C’est voulu, et chacun d’eux se déchiffre en le même message.

Est-ce compatible avec OpenSSL ?

Oui. Un texte chiffré ici se déchiffre avec openssl pkeyutl -decrypt -inkey private.pem -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256 (ou rsa_padding_mode:pkcs1), et les textes chiffrés avec openssl pkeyutl -encrypt se déchiffrent ici. Utilisez le même remplissage des deux côtés.

Quels formats de clé puis-je utiliser ?

Les clés publiques PEM (BEGIN PUBLIC KEY ou BEGIN RSA PUBLIC KEY), les certificats, et les clés privées non chiffrées en PKCS#8 (BEGIN PRIVATE KEY) ou PKCS#1 (BEGIN RSA PRIVATE KEY), y compris sous forme de fichiers DER. Les clés protégées par mot de passe et les clés OpenSSH doivent d’abord être converties ; l’outil explique comment.

Pourquoi le déchiffrement échoue-t-il ?

Le plus souvent à cause du remplissage ou de la clé. Déchiffrez avec le remplissage utilisé pour chiffrer, et avec la clé privée qui correspond à la clé publique utilisée ; l’outil ne distingue volontairement pas ces deux cas, essayez donc les autres remplissages. Un texte chiffré a toujours la longueur de la clé (256 octets pour une clé de 2048 bits) : s’il est plus court, il a été tronqué lors de la copie.

Outils associés