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.

National Standards
Legacy
Sortie

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.

Standard TLS moderne : ChaCha20-Poly1305 est l'une des deux suites de chiffrement obligatoires dans TLS 1.3 (avec AES-256-GCM). C'est le choix préféré sur les appareils mobiles et IoT, et est comparable en sécurité à AES-256-GCM sur toutes les plateformes.

É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 :

1. Générer ou saisir la cléCliquez sur le bouton aléatoire à côté de 'Secret Key' pour générer une clé aléatoire de 32 octets (256 bits), ou saisissez votre propre chaîne de 32 caractères
2. Nonce (optionnel)Laisser vide pour générer automatiquement un nonce aléatoire de 12 octets pour chaque chiffrement. Pour le déchiffrement, le nonce est intégré dans le texte chiffré — laissez ce champ vide
3. ChiffrerSaisissez le texte en clair dans la zone de saisie, sélectionnez 'Chiffrer' et cliquez sur 'Chiffrer'. La sortie est une chaîne base64 contenant le nonce de 12 octets précédant le texte chiffré+étiquette
4. DéchiffrerCollez le texte chiffré base64 dans la zone de saisie, sélectionnez 'Déchiffrer', saisissez la même clé utilisée pour le chiffrement et cliquez sur 'Déchiffrer'
Protection de la vie privée : Toutes les opérations ChaCha20-Poly1305 s'exécutent entièrement dans votre navigateur via WebAssembly. Aucune donnée n'est jamais envoyée à un serveur — traitement complètement hors ligne.

Format de clé et de nonce

ChaCha20-Poly1305 utilise des paramètres de taille fixe :

Clé32 octets (256 bits) — saisir comme chaîne de 32 caractères, ou utiliser le générateur aléatoire
Nonce12 octets (96 bits) — saisir comme chaîne de 12 caractères, ou laisser vide pour la génération automatique. Ne jamais réutiliser le même nonce avec la même clé
Format du texte chiffrébase64(nonce[12 octets] + texte chiffré + étiquette d'authentification[16 octets]). Le nonce est précédé pour que le déchiffrement soit autonome
Étiquette16 octets (128 bits) d'étiquette d'authentification Poly1305, ajoutée automatiquement lors du chiffrement et vérifiée automatiquement lors du déchiffrement
Ne jamais réutiliser les nonces : Réutiliser la même paire (clé, nonce) compromet complètement la sécurité de ChaCha20-Poly1305 — cela permet à un attaquant de récupérer le flux de clés et de déchiffrer tous les messages. Utilisez toujours un nonce unique pour chaque chiffrement, ou laissez cet outil en générer un automatiquement.

ChaCha20-Poly1305 vs AES-GCM

Les deux sont des chiffrements AEAD dans TLS 1.3. Voici quand choisir chacun :

ChaCha20-Poly1305Préféré sur les appareils mobiles, ARM et IoT sans AES matériel. Temps constant dans le logiciel, résistant aux attaques par timing. Aucun accélérateur matériel nécessaire
AES-GCMPréféré lorsque les instructions matérielles AES-NI sont disponibles (la plupart des CPU x86/x64 modernes). Nettement plus rapide avec accélération matérielle
Équivalence de sécuritéLes deux fournissent une force de clé de 256 bits et des étiquettes d'authentification de 128 bits. Aucun n'est considéré comme plus fort que l'autre du point de vue de la sécurité
Stratégie TLS 1.3Les implémentations TLS 1.3 négocient : AES-GCM sur les serveurs/bureaux avec AES-NI ; ChaCha20-Poly1305 sur les clients mobiles sans AES matériel

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).

Recommended Configuration:
  • ✅ 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.

Recommended Configuration:
  • ✅ 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.

Recommended Configuration:
  • ✅ 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).

Recommended Configuration:
  • 💡 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.

Recommended Configuration:
  • ❌ 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

ChaCha20-Poly1305 est un algorithme de chiffrement, pas une fonction de hachage de mots de passe. Le chiffrement est réversible — toute personne disposant de la clé peut déchiffrer le mot de passe. Utilisez Argon2id (préféré) ou bcrypt pour le stockage des mots de passe.

Recommended Configuration:
  • ❌ N'utilisez pas ChaCha20-Poly1305 pour le stockage de mots de passe (c'est réversible)
  • Argon2id (algorithme de hachage de mots de passe préféré)
  • bcrypt (largement pris en charge, systèmes existants)
  • ✅ scrypt / PBKDF2 (KDFs de mots de passe alternatifs)

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.

Discussion et commentaires

0 commentaires
Moi