ChaCha20-Poly1305
Qu'est-ce que ChaCha20-Poly1305 ?
ChaCha20-Poly1305Construction AEAD associant le chiffrement en flux ChaCha20 a l'authentificateur a usage unique Poly1305, normalisee par RFC 8439 pour TLS 1.3 et WireGuard.
ChaCha20-Poly1305 est l'AEAD specifie par RFC 8439 (qui a rendu obsolete la RFC 7539). ChaCha20, concu par Daniel J. Bernstein, est un chiffrement en flux ARX de 256 bits de cle, avec nonce de 96 bits et compteur de 32 bits produisant un bloc de keystream de 512 bits par appel ; Poly1305 est un MAC a usage unique de 128 bits applique au chiffre et aux donnees associees, sa cle etant derivee du premier bloc du keystream ChaCha20. Comme il est constant en temps et rapide en logiciel pur sans AES-NI, Google l'a deploye dans Chrome et Android en 2014 (porte par Adam Langley) pour proteger les clients mobiles depourvus de materiel AES, ou il evite les fuites par temporisation de cache de l'AES a tables.
Il est aujourd'hui omnipresent : suites TLS 1.2 (RFC 7905), une suite obligatoire de TLS 1.3 (RFC 8446), QUIC (RFC 9001), chacha20-poly1305@openssh.com dans OpenSSH depuis 6.5, OpenVPN et chaque trame de donnees WireGuard. La variante a nonce etendu XChaCha20-Poly1305 (nonce de 192 bits, popularisee par libsodium) permet de tirer les nonces au hasard sans crainte de la borne d'anniversaire.
Comme AES-GCM, il echoue catastrophiquement en cas de reutilisation de nonce : repeter un nonce avec une meme cle divulgue le XOR de deux textes en clair et expose la cle Poly1305, autorisant la falsification de messages. Les implementations utilisent donc des compteurs deterministes et renouvellent la cle avant que le compteur ne deborde.
flowchart LR K[Cle de 256 bits] --> CC[ChaCha20] N[Nonce de 96 bits] --> CC CC -->|bloc 0| PK[Cle unique Poly1305] CC -->|blocs 1..n| KS[Keystream] P[Texte en clair] --> X((XOR)) KS --> X X --> CT[Texte chiffre] AD[Donnees associees] --> PM[MAC Poly1305] CT --> PM PK --> PM PM --> TAG[Tag de 128 bits] CT --> OUT[Texte chiffre + tag] TAG --> OUT
● Exemples
- 01
Suite TLS 1.3 TLS_CHACHA20_POLY1305_SHA256.
- 02
Les trames de donnees WireGuard sont chiffrees avec ChaCha20-Poly1305.
● Questions fréquentes
Qu'est-ce que ChaCha20-Poly1305 ?
Construction AEAD associant le chiffrement en flux ChaCha20 a l'authentificateur a usage unique Poly1305, normalisee par RFC 8439 pour TLS 1.3 et WireGuard. Cette notion relève de la catégorie Cryptographie en cybersécurité.
Que signifie ChaCha20-Poly1305 ?
Construction AEAD associant le chiffrement en flux ChaCha20 a l'authentificateur a usage unique Poly1305, normalisee par RFC 8439 pour TLS 1.3 et WireGuard.
Comment se défendre contre ChaCha20-Poly1305 ?
Les défenses contre ChaCha20-Poly1305 combinent habituellement des contrôles techniques et des pratiques opérationnelles, comme détaillé dans la définition ci-dessus.
Quels sont les autres noms de ChaCha20-Poly1305 ?
Noms alternatifs courants : ChaCha20/Poly1305, RFC 8439, ChaPoly.