0Pricing
Cryptology Academy · Leçon

AEAD ChaCha20-Poly1305 dans TLS 1.3

Découvrez comment ChaCha20 est déployé comme chiffrement AEAD dans TLS moderne.

AEAD ChaCha20-Poly1305 dans TLS 1.3 est une leçon Cryptology Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Cryptology Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Cryptology Academy comprend 4 leçons au total.

Bienvenue

ChaCha20-Poly1305 combine le chiffrement par flot ChaCha20 avec le MAC Poly1305 pour créer une suite de chiffrement AEAD sécurisée, utilisée dans TLS 1.3, WireGuard et les applications mobiles.

Présentation du MAC Poly1305

Poly1305 est un MAC à usage unique conçu par Bernstein. Il authentifie un message au moyen d’une évaluation polynomiale sur le nombre premier 2^130-5. À usage unique : chaque utilisation nécessite une nouvelle clé de 32 octets.

Sécurité de Poly1305

Poly1305 offre une sécurité de 128 bits si la clé n’est jamais réutilisée. La clé du MAC est générée de nouveau pour chaque message à partir du flot de clés ChaCha20. Cette combinaison est prouvée sûre.

Construction de ChaCha20-Poly1305

1. Générer un flot de clés de 64 octets à partir du bloc 0 de ChaCha20 2. Les 32 premiers octets constituent la clé Poly1305 3. Les 32 octets restants sont supprimés 4. Chiffrer le texte en clair avec les blocs 1, 2, 3, ... de ChaCha20 5. Calculer le MAC Poly1305 sur AAD + le texte chiffré

Structure de la RFC 8439

Format de sortie : texte chiffré || étiquette (16 octets) Entrée du MAC : AAD || remplissage1 || texte chiffré || remplissage2 || longueur(AAD) || longueur(texte chiffré) Remplissage : compléter avec des zéros jusqu’à l’alignement sur 16 octets. Les longueurs sont codées sous forme d’entiers 64 bits en little-endian.

Suites de chiffrement de TLS 1.3

Suites de chiffrement obligatoires de TLS 1.3 : - TLS_AES_256_GCM_SHA384 - TLS_AES_128_GCM_SHA256 - TLS_CHACHA20_POLY1305_SHA256 CHACHA20_POLY1305 est privilégié pour les clients dépourvus d’accélération matérielle AES.

WireGuard utilise ChaCha20-Poly1305

WireGuard utilise exclusivement ChaCha20Poly1305 pour le chiffrement de tous les tunnels. Aucune négociation de chiffrement : un seul algorithme soigneusement analysé. Cette simplicité réduit considérablement la surface d’attaque.

secretbox de libsodium

crypto_secretbox_easy() de libsodium utilise XSalsa20-Poly1305 (variante à nonce étendu) : ciphertext = crypto_secretbox_easy(message, nonce, key) API de haut niveau : elle fonctionne correctement sans avoir à choisir les paramètres.

Performances sur mobile

Les appareils Android et iOS ne disposent souvent pas d’AES-NI. L’analyse menée par Google en 2014 a montré que ChaCha20-Poly1305 était trois fois plus rapide qu’AES-GCM sur ARM. C’est pourquoi Google l’a rendu obligatoire dans Android et Chrome.

Implémentation en Python

from cryptography.hazmat.primitives.ciphers.aead import ChaCha20Poly1305 import os key = ChaCha20Poly1305.generate_key() nonce = os.urandom(12) aad = b'header_data' cipher = ChaCha20Poly1305(key) ct = cipher.encrypt(nonce, b'plaintext', aad) pt = cipher.decrypt(nonce, ct, aad)

Comparaison : AES-GCM et ChaCha20-Poly1305

AES-GCM : plus rapide avec AES-NI, nonce de 96 bits, possibilité de falsifier l’étiquette GCM en cas de réutilisation du nonce. ChaCha20-Poly1305 : plus rapide sans accélération matérielle, nonce de 96 bits, clé Poly1305 renouvelée pour chaque message. Les deux sont excellents. Utilisez AES-GCM sur les serveurs et ChaCha20-Poly1305 sur les appareils mobiles.

Vérification rapide

Dans ChaCha20-Poly1305, comment la clé Poly1305 est-elle générée ?

Récapitulatif

ChaCha20-Poly1305 est le choix AEAD optimisé pour les appareils mobiles. Nous allons maintenant étudier l’échange de clés Diffie-Hellman : comment deux parties établissent un secret partagé sur un canal non sécurisé.

Questions Fréquemment Posées

La leçon « AEAD ChaCha20-Poly1305 dans TLS 1.3 » est-elle gratuite ?

Oui — le texte complet de « AEAD ChaCha20-Poly1305 dans TLS 1.3 » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Cryptology Academy, passe à CoddyKit PRO. Le cours Cryptology Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « AEAD ChaCha20-Poly1305 dans TLS 1.3 » ?

Découvrez comment ChaCha20 est déployé comme chiffrement AEAD dans TLS moderne. Tu pratiques Cryptology Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Cryptology Academy ?

Aucune expérience préalable n'est requise. Cryptology Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « AEAD ChaCha20-Poly1305 dans TLS 1.3 » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Cryptology Academy ?

Oui. Chaque leçon Cryptology Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Concepts des chiffrements par flot et PRNG
  2. RC4 : conception, faiblesses et attaques contre WEP
  3. Conception de Salsa20 et ChaCha20
  4. AEAD ChaCha20-Poly1305 dans TLS 1.3
← Retour à Cryptology Academy