ChaCha20-Poly1305 Chiffrer & Déchiffrer
Outil en ligne gratuit ChaCha20-Poly1305 Chiffrer & Déchiffrer. Traitement 100% local — vos données ne quittent jamais votre appareil.
Le résultat sera affiché ici...
Entrée → Chiffrer
Usage Guide
À propos de ChaCha20-Poly1305
ChaCha20-Poly1305 est un chiffrement authentifié avec données associées (AEAD), combinant le chiffrement de flux ChaCha20 avec le code d'authentification de message Poly1305. Conçu par Daniel J. Bernstein, il est standardisé dans la RFC 8439 et adopté dans TLS 1.3, SSH et WireGuard comme suite de chiffrement principale. Il fournit à la fois la confidentialité (chiffrement) et l'intégrité (authentification) en une seule opération, empêchant à la fois l'écoute clandestine et la falsification du texte chiffré. ChaCha20-Poly1305 a été développé comme une alternative conviviale au logiciel AES-GCM pour les plateformes sans accélération matérielle AES.
Étapes d'utilisation
Cet outil prend en charge le chiffrement et le déchiffrement. La clé est obligatoire ; le nonce est généré automatiquement s'il est laissé vide :
Format de clé et de nonce
ChaCha20-Poly1305 utilise des paramètres de taille fixe :
ChaCha20-Poly1305 vs AES-GCM
Les deux sont des chiffrements AEAD dans TLS 1.3. Voici quand choisir chacun :
FAQ
Q: Pourquoi la sortie est-elle plus longue que l'entrée ?
A: La sortie chiffrée est encodée en base64 et comprend : 12 octets de nonce + longueur du texte en clair + 16 octets d'étiquette d'authentification Poly1305. Le surcoût binaire est donc de 28 octets (12 nonce + 16 étiquette), et l'encodage base64 ajoute environ 33% de longueur supplémentaire.
Q: Que se passe-t-il si je falsifie le texte chiffré ?
A: ChaCha20-Poly1305 refusera de déchiffrer le texte chiffré falsifié. L'étiquette Poly1305 est un code d'authentification de message calculé sur l'ensemble du texte chiffré. Toute modification — même un seul bit — entraîne l'échec de la vérification de l'étiquette, et la fonction de déchiffrement retourne une erreur plutôt que de produire un texte en clair corrompu.
Q: En quoi ChaCha20-Poly1305 diffère-t-il du ChaCha20 simple ?
A: ChaCha20 simple ne fournit que la confidentialité — il chiffre les données mais ne détecte pas les falsifications. ChaCha20-Poly1305 combine le chiffrement ChaCha20 avec une étiquette d'authentification Poly1305, offrant à la fois confidentialité et intégrité. Préférez toujours ChaCha20-Poly1305 au ChaCha20 brut pour toute utilisation pratique.
Q: Puis-je utiliser la même clé pour plusieurs messages ?
A: Oui, mais chaque message doit utiliser un nonce unique. La paire (clé, nonce) ne doit jamais être réutilisée. Avec des nonces de 12 octets, la génération aléatoire de nonces donne une probabilité de collision d'anniversaire d'environ 1 sur 296 — sûr pour des milliards de messages.
Q: ChaCha20-Poly1305 est-il résistant aux ordinateurs quantiques ?
A: Comme tous les chiffrements symétriques, ChaCha20-Poly1305 est affecté par l'algorithme de Grover, réduisant la sécurité de 256 bits à un équivalent de 128 bits. Une sécurité post-quantique de 128 bits est considérée comme suffisante pour la plupart des applications. ChaCha20-Poly1305 avec sa clé de 256 bits est donc considéré comme résistant aux attaques quantiques au niveau de sécurité de 128 bits, comme AES-256-GCM.
Q: Pourquoi le déchiffrement échoue-t-il avec 'clé, nonce ou texte chiffré invalide' ?
A: Cette erreur signifie que la vérification de l'étiquette d'authentification a échoué. Causes courantes :
Mauvaise clé : La clé ne correspond pas à celle utilisée pour le chiffrement.
Texte chiffré corrompu : La chaîne base64 a été modifiée, tronquée ou collée incorrectement.
Déchiffrement de données non-ChaCha20-Poly1305 : L'entrée a été chiffrée avec un algorithme ou outil différent.
Use Cases
Recommandé : Chiffrement symétrique de fichiers et de messages
ChaCha20-Poly1305 est un excellent choix de chiffrement symétrique à usage général. Il est utilisé dans WireGuard VPN pour tout le trafic tunnel et est l'une des deux suites de chiffrement principales dans TLS 1.3. Générez toujours un nouveau nonce aléatoire par message (cet outil le précède automatiquement).
- ✅ ChaCha20-Poly1305 (recommandé pour mobile, multiplateforme, logiciel uniquement)
- ✅ AES-256-GCM (recommandé lorsque le matériel AES-NI est disponible)
- ✅ XChaCha20-Poly1305 (nonce étendu de 24 octets, pour la messagerie à grand volume)
- ❌ N'utilisez pas de chiffrements non authentifiés (AES-CBC, ChaCha20 simple) pour les nouveaux projets
Recommandé : Chiffrement mobile et IoT
Sur les plateformes sans accélération matérielle AES, ChaCha20-Poly1305 surpasse AES-GCM. Comme ChaCha20 est convivial pour le logiciel, il s'exécute en temps constant sur toutes les plateformes sans risques de canaux latéraux de timing. Google a choisi ChaCha20-Poly1305 comme chiffrement préféré pour le trafic TLS Android.
- ✅ ChaCha20-Poly1305 (meilleures performances sans AES matériel)
- ✅ AES-256-GCM (acceptable sur les appareils avec matériel AES)
- 💡 TLS 1.3 négocie automatiquement — les deux suites de chiffrement sont obligatoires
- ❌ N'utilisez pas AES-CBC sur les appareils contraints (pas d'authentification, plus lent)
Acceptable : Stockage local chiffré
ChaCha20-Poly1305 peut protéger les données sensibles stockées localement. Dérivez la clé d'un mot de passe utilisateur en utilisant Argon2id plutôt que d'utiliser directement le mot de passe.
- ✅ ChaCha20-Poly1305 + dérivation de clé Argon2id (chiffrement basé sur mot de passe)
- ✅ AES-256-GCM + PBKDF2 (environnements conformes FIPS)
- 💡 Stocker : paramètres Argon2id + sel + nonce ChaCha20 + texte chiffré
- ❌ N'utilisez pas le mode ECB ni les chiffrements non authentifiés pour le stockage local
Non recommandé : Chiffrement de grands fichiers
Le ChaCha20-Poly1305 standard met en mémoire tampon l'ensemble du texte chiffré avant l'authentification, ce qui est gourmand en mémoire pour les grands fichiers. Pour les fichiers de plus de quelques mégaoctets, utilisez un outil ou une bibliothèque dédié qui gère le chiffrement par blocs (ex. libsodium secretstream, age).
- 💡 Utilisez AEAD par blocs pour les fichiers de plus de quelques Mo
- ✅ libsodium secretstream (ChaCha20-Poly1305 en streaming)
- ✅ outil de chiffrement age (orienté fichier, utilise ChaCha20-Poly1305 en interne)
- ✅ AES-256-GCM en mode streaming (pour les environnements avec accélération matérielle)
Non recommandé : Échange de clés ou authentification
ChaCha20-Poly1305 est un chiffrement symétrique — les deux parties doivent déjà partager la même clé secrète. Il ne résout pas le problème de distribution des clés. Pour l'échange sécurisé de clés, utilisez un protocole asymétrique ou un protocole complet comme TLS 1.3. Pour l'authentification sans secrets partagés, utilisez des signatures numériques RSA ou ECDSA.
- ❌ ChaCha20-Poly1305 ne résout pas la distribution des clés
- ✅ TLS 1.3 (gère l'échange de clés + chiffrement des données ChaCha20-Poly1305)
- ✅ X25519 + ChaCha20-Poly1305 (modèle de protocole Noise)
- ✅ RSA / ECDSA pour les signatures numériques et la vérification d'identité
Non recommandé : Hachage de mots de passe
Résumé des meilleures pratiques
- Utilisez ChaCha20-Poly1305 pour le chiffrement symétrique où l'accélération matérielle AES n'est pas disponible — mobile, IoT et logiciels multiplateformes.
- Utilisez toujours un nonce aléatoire unique pour chaque chiffrement. L'outil en génère un automatiquement si vous laissez le champ nonce vide.
- La sortie du texte chiffré intègre le nonce de 12 octets et l'étiquette d'authentification de 16 octets — vous n'avez qu'à stocker la seule chaîne base64 pour le déchiffrement.
- Ne réutilisez jamais une paire (clé, nonce). La réutilisation du nonce compromet complètement la sécurité de ChaCha20-Poly1305.
- Pour le chiffrement basé sur mot de passe, dérivez d'abord la clé avec Argon2id — n'utilisez jamais directement un mot de passe comme clé ChaCha20-Poly1305.