Toolonit
  1. Accueil
  2. Chiffrement
  3. Chiffrer / déchiffrer
  4. ChaCha20

Chiffrement et déchiffrement ChaCha20

Chiffrez et déchiffrez du texte avec ChaCha20-Poly1305 ou ChaCha20 seul.

Chiffrer avec

Il vous faudra le même pour déchiffrer. Rien de ce que vous saisissez ne quitte cette page.

Itérations PBKDF2

La valeur par défaut d’OpenSSL est 10 000. Tout nombre convient : plus il est élevé, plus le mot de passe est lent à deviner ; pour déchiffrer, il faut le même nombre.

Mode

Authentifié : un mauvais mot de passe, une mauvaise clé ou toute modification du texte est détecté.

Sortie en
Équivalent OpenSSL

La commande enc d’OpenSSL ne sait pas lire ChaCha20-Poly1305. Déchiffrez-le ici, ou dans du code avec une bibliothèque cryptographique : le tag de 16 octets suit le texte chiffré.

ChaCha20-Poly1305 (RFC 8439) est le chiffrement authentifié utilisé par TLS 1.3 et WireGuard : il chiffre le texte et détecte aussi toute modification, ou un mauvais mot de passe. Chiffrez ici un texte avec un mot de passe ou avec votre propre clé de 256 bits et un nonce de 12 octets, ou collez un texte chiffré en Base64 ou en hexadécimal pour le déchiffrer. Avec un mot de passe, la clé et le nonce sont dérivés par PBKDF2-HMAC-SHA256 avec un sel aléatoire, comme avec openssl enc -pbkdf2, et la sortie contient Salted__, le sel, le texte chiffré et le tag Poly1305 de 16 octets. ChaCha20 seul, sans tag, est aussi disponible, dans la disposition du chacha20 d’OpenSSL. Votre texte, vos mots de passe et vos clés ne quittent jamais votre appareil : tout s’exécute dans votre navigateur, gratuitement et sans inscription.

Comment chiffrer un texte en ChaCha20-Poly1305

  1. Choisissez « Chiffrer » ou « Déchiffrer ». Saisissez le texte à chiffrer, ou collez le texte en Base64 ou en hexadécimal à déchiffrer : le format est détecté automatiquement.
  2. Saisissez un mot de passe (« Générer » en crée un solide), ou passez en mode « Clé et IV (hex) » et saisissez ou générez une clé de 64 chiffres hexadécimaux et un nonce de 24 chiffres (un IV de 32 chiffres pour ChaCha20 seul).
  3. Gardez ChaCha20-Poly1305, ou choisissez ChaCha20 pour correspondre à openssl enc -chacha20. Pour déchiffrer, reprenez le mode, le mot de passe et le nombre d’itérations utilisés pour chiffrer.
  4. Copiez ou téléchargez le résultat, ou cliquez sur « Inverser » pour le placer dans l’entrée et le déchiffrer à nouveau, par vérification.

Fonctionnalités

  • ChaCha20-Poly1305 conforme à la RFC 8439 : clé de 256 bits, nonce de 12 octets, tag de 16 octets
  • ChaCha20 seul dans la disposition d’OpenSSL : un IV de 16 octets formé d’un compteur little-endian de 4 octets et du nonce de 12 octets
  • Mode mot de passe : clé et nonce dérivés par PBKDF2-HMAC-SHA256 avec un sel aléatoire, derrière l’en-tête Salted__ d’openssl enc -pbkdf2
  • Mode Clé et IV : votre propre clé et votre nonce en hexadécimal, ou des valeurs aléatoires via « Générer »
  • Avec Poly1305, un mauvais mot de passe, une mauvaise clé ou un seul caractère modifié fait échouer le déchiffrement au lieu de renvoyer des données illisibles
  • Sans remplissage : le texte chiffré a la longueur du texte, plus le tag de 16 octets avec Poly1305
  • La commande openssl enc -chacha20 pour ChaCha20 seul

Est-ce confidentiel ?

Oui. ChaCha20 s’exécute en WebAssembly dans votre navigateur, et le mot de passe est étiré par Web Crypto, intégré au navigateur. Rien de ce que vous saisissez – texte, mot de passe, clé ou nonce – n’est envoyé ni enregistré.

Questions fréquentes

ChaCha20-Poly1305 ou ChaCha20 seul ?

ChaCha20-Poly1305, le choix par défaut, pour tout nouvel usage : son tag Poly1305 fait échouer le déchiffrement si un seul caractère a été modifié ou si le mot de passe est faux. ChaCha20 seul ne fait que chiffrer : une mauvaise clé donne des octets illisibles au lieu d’une erreur. Ne l’utilisez donc que pour correspondre à un système qui l’emploie, comme openssl enc -chacha20.

OpenSSL peut-il le déchiffrer ?

ChaCha20 seul, oui : echo 'U2FsdGVkX1…' | openssl enc -d -chacha20 -pbkdf2 -iter 10000 -a -A en mode mot de passe, ou -K <clé hex> -iv <IV hex> à la place de -pbkdf2 -iter en mode Clé et IV. ChaCha20-Poly1305, non : openssl enc refuse les chiffrements AEAD. Lisez-le ici, ou dans du code : en mode Clé et IV, la sortie est le texte chiffré suivi du tag de 16 octets, sans en-tête.

Que se passe-t-il si un nonce est réutilisé ?

Deux messages chiffrés avec la même clé et le même nonce révèlent le XOR de leurs textes et permettent à un attaquant de forger des tags Poly1305. En mode mot de passe, cette erreur est impossible : chaque chiffrement tire un nouveau sel aléatoire, donc la clé, le nonce et la sortie sont nouveaux à chaque fois. En mode Clé et IV, cliquez sur « Générer » pour obtenir un nouveau nonce avant chaque message.

ChaCha20 est-il aussi sûr qu’AES ?

Oui. ChaCha20-Poly1305 et AES-GCM sont deux chiffrements standard de TLS 1.3 contre lesquels il n’existe aucune attaque pratique, et ChaCha20 est souvent plus rapide sur les téléphones sans accélération matérielle AES. Le point faible, c’est le mot de passe : prenez-en un long et aléatoire, et le réglage à 600 000 itérations si vous maîtrisez les deux côtés.

XChaCha20-Poly1305 est-il pris en charge ?

Non. XChaCha20, la variante à nonce de 24 octets que l’on trouve dans libsodium, est une construction différente : son texte chiffré ne peut pas être déchiffré ici. Cette page accepte le nonce de 12 octets de la RFC 8439 et l’IV chacha20 de 16 octets d’OpenSSL. Pour chiffrer un fichier plutôt qu’un texte, l’outil « Chiffrement de fichiers » utilise ChaCha20-Poly1305 au format age.

Outils associés