Aller au contenu
uencoder

ChaCha20

ChaCha20 est un chiffrement de flux conçu par Daniel Bernstein, fondé sur des opérations ARX (addition-rotation-XOR), généralement associé à Poly1305 comme AEAD — une alternative performante à AES-GCM.

Objectif

Offre un chiffrement rapide et sûr à temps constant sur les plateformes sans accélération matérielle AES, en évitant les canaux auxiliaires temporels d'AES.

Mécanisme

Amélioration de Salsa20, il exécute 20 tours d'opérations quarter-round. L'état est une matrice 4×4 (constantes, clé, compteur, nonce). Chaque tour applique addition-rotation-XOR aux colonnes et diagonales ; le flux de clé obtenu est combiné par XOR avec le texte en clair.

Cas d’usage

  • Une des suites de chiffrement par défaut de TLS 1.3
  • VPN WireGuard
  • Chiffrement des serveurs Google
  • Chiffrement mobile

Exemples

  • entrée
    key=256bit, nonce=96bit, counter
    Output
    keystream

    Combined with Poly1305 as AEAD

Erreurs courantes

Nonce reuse replays the keystream
Use a unique nonce per message (e.g., a counter)

Termes associés

Outils associés

References