CoderTools

Chiffrement ChaCha20

Chiffrement par flux moderne avec authentification optionnelle

Sécurité côté client

Toutes les opérations de chiffrement/déchiffrement sont effectuées localement dans votre navigateur. Aucune donnée n'est envoyée à un serveur.

ChaCha20 : Chiffrement par flux 256 bits avec nonce 96 bits. Rapide et sécurisé, sans authentification.

Valeur initiale du compteur (défaut : 0)

Options de format
🔒 100% Traitement localVos fichiers sont traités entièrement dans votre navigateur. Aucune donnée n'est envoyée à un serveur.

À propos de ChaCha20

ChaCha20 est un chiffrement par flux moderne conçu par Daniel J. Bernstein en 2008, dérivé du chiffrement Salsa20. Il utilise une clé de 256 bits et opère sur des blocs de 512 bits, générant un flux de clés XORé avec le texte clair pour le chiffrement. Ce chiffrement est reconnu pour sa vitesse, sa sécurité et sa résistance aux attaques temporelles.

Ce chiffrement est connu pour sa vitesse, sa sécurité et sa résistance aux attaques temporelles, ce qui en fait un excellent choix pour les implémentations logicielles.

Comparaison des algorithmes

Algorithme Authentification Longueur de clé Taille du nonce Cas d'utilisation
ChaCha20 Chiffrement par flux 256 bits 96 bits (12 bytes) Chiffrement brut, protocoles personnalisés
ChaCha20-Poly1305 AEAD 256 bits 96 bits (12 bytes) TLS 1.3, QUIC, messagerie sécurisée
XChaCha20 Chiffrement par flux 256 bits 192 bits (24 bytes) Scénarios de nonce aléatoire
XChaCha20-Poly1305 AEAD 256 bits 192 bits (24 bytes) La plupart des applications (recommandé)

Fonctionnement de ChaCha20

ChaCha20 fonctionne en 20 tours, appliquant des fonctions quart de tour à une matrice 4×4 de mots de 32 bits. L'état initial comprend :

Chaque tour permute l'état en utilisant additions, XOR et rotations, offrant une excellente diffusion tout en restant rapide en logiciel.

AEAD : Chiffrement authentifié

ChaCha20-Poly1305 est une construction AEAD standardisée dans RFC 8439. Elle combine ChaCha20 pour le chiffrement avec le MAC Poly1305 pour l'authentification. Cela garantit confidentialité et intégrité - toute altération du texte chiffré ou de l'AAD sera détectée lors du déchiffrement. Le tag d'authentification 128 bits est ajouté au texte chiffré.

Cela garantit à la fois la confidentialité et l'intégrité - toute altération du texte chiffré ou de l'AAD sera détectée lors du déchiffrement. Le tag d'authentification de 128 bits est calculé sur le texte chiffré et l'AAD.

Caractéristiques principales

  • Haute performance : Optimisé pour les implémentations logicielles, 3× plus rapide qu'AES sans accélération matérielle
  • Temps constant : Résistant aux attaques de timing cache, contrairement aux implémentations AES basées sur des tables
  • Conception simple : Utilise uniquement des opérations ARX (addition, rotation, XOR), facile à implémenter correctement
  • Large adoption : Utilisé dans TLS 1.3, OpenSSH, WireGuard, Signal Protocol et plus
  • Nonce étendu : La variante XChaCha20 permet la génération sécurisée de nonce aléatoire sans risque de collision

Considérations de sécurité

  • Ne jamais réutiliser un nonce avec la même clé - cela compromet totalement la sécurité
  • Utiliser les variantes AEAD (Poly1305) pour la plupart des applications afin de détecter les altérations
  • Pour les nonces aléatoires, utiliser XChaCha20 (192 bits) pour minimiser la probabilité de collision
  • Utiliser un KDF approprié (HKDF, Argon2) pour dériver les clés des mots de passe

Utilisation réelle

  • TLS 1.3 : Suite de chiffrement par défaut (TLS_CHACHA20_POLY1305_SHA256)
  • WireGuard VPN : Protocole de chiffrement principal
  • Signal Protocol : Messagerie chiffrée de bout en bout
  • Cloudflare : Préféré à AES-GCM pour les clients mobiles
  • Noyau Linux : CSPRNG (/dev/urandom)

Références

FAQ

Quelle est la différence entre ChaCha20 et AES ?

Les deux sont des chiffrements symétriques sécurisés. ChaCha20 est 3× plus rapide en logiciel sans accélération matérielle et résistant aux attaques temporelles. AES est plus rapide avec support matériel (AES-NI). ChaCha20 est préféré pour les appareils mobiles et embarqués.

Pourquoi utiliser XChaCha20 au lieu de ChaCha20 ?

Le nonce 192 bits de XChaCha20 permet la génération sécurisée de nonce aléatoire. Avec un nonce 96 bits, une gestion prudente est nécessaire pour éviter les collisions. XChaCha20 est recommandé quand vous ne pouvez pas garantir des nonces séquentiels uniques.

À quoi sert le paramètre compteur ?

Le compteur permet de chiffrer des messages de plus de 64 octets en incrémentant pour chaque bloc. Pour les modes AEAD, il commence à 1 (le bloc 0 génère la clé Poly1305). Habituellement, vous pouvez laisser la valeur par défaut (0).

Puis-je chiffrer des fichiers avec cet outil ?

Cet outil fonctionne entièrement dans votre navigateur et convient pour chiffrer du texte et de petites données. Pour les gros fichiers, utilisez des outils natifs comme openssl ou des applications basées sur libsodium.

Cet outil est-il sûr pour une utilisation en production ?

Cet outil est à des fins éducatives et de développement. Bien que l'implémentation suive les spécifications standards, les systèmes de production devraient utiliser des bibliothèques cryptographiques bien auditées comme libsodium, OpenSSL ou les API de la plateforme.