Cryptology Academy · Leçon

Conception de Salsa20 et ChaCha20

Suivez le fonctionnement du quarter-round de ChaCha20 et découvrez sa vitesse sur le matériel mobile.

Leçon 3 sur 413 étapes

Conception de Salsa20 et ChaCha20 est une leçon Cryptology Academy gratuite sur CoddyKit. Ceci est la leçon 3 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 est le chiffrement par flux dominant dans les systèmes modernes — utilisé dans TLS 1.3, WireGuard, Signal et bien d'autres. Décortiquons sa conception élégante.

Origines de ChaCha20

Daniel J. Bernstein a conçu Salsa20 en 2005, puis l'a amélioré pour obtenir ChaCha20 en 2008. Le préfixe « Cha » indique huit améliorations supplémentaires de la diffusion. Le chiffrement a été normalisé dans la RFC 7539 (2015) et la RFC 8439 (2018).

État de ChaCha20

ChaCha20 fonctionne sur une matrice 4×4 de mots de 32 bits, soit 512 bits au total : - Mots 0 à 3 : constantes ('expa', 'nd 3', '2-by', 'te k') - Mots 4 à 11 : clé de 256 bits (8 mots) - Mot 12 : compteur de bloc de 32 bits - Mots 13 à 15 : nonce de 96 bits

Le quart de tour

Opération centrale de ChaCha20 — le quart de tour sur (a,b,c,d) : a+=b; d^=a; d<<<= 16 c+=d; b^=c; b<<<= 12 a+=b; d^=a; d<<<= 8 c+=d; b^=c; b<<<= 7 Addition-Rotation-XOR (ARX). Aucune boîte S n'est nécessaire — le fonctionnement est rapide sur tout matériel.

20 tours

ChaCha20 applique 20 tours : une alternance de tours de colonnes et de tours de diagonales, avec 4 quarts de tour chacun. 8 tours = ChaCha8 (rapide), 12 tours = ChaCha12 (équilibré). ChaCha20 est le choix sûr par défaut.

Génération du flux de clés

1. Initialiser l'état à partir de la clé + du nonce + du compteur 2. Appliquer 20 tours de quarts de tour 3. Ajouter l'état initial à l'état après rotation (empêche l'opération inverse) 4. Produire un bloc de flux de clés de 64 octets 5. Incrémenter le compteur pour le bloc suivant

Avantages de sécurité d'ARX

Les chiffrements ARX (addition, rotation, XOR) fonctionnent naturellement à temps constant sur la plupart des CPU. L'absence d'accès par table signifie qu'il n'y a pas de canaux auxiliaires liés à la temporisation du cache. C'est essentiel pour les implémentations sécurisées.

Performances de ChaCha20

Sans AES-NI : ChaCha20 est environ 3 fois plus rapide qu'AES-CBC. Sur les téléphones (ARM Cortex-A) : ChaCha20 est le choix le plus rapide. Avec AES-NI (x86 moderne) : AES-GCM est plus rapide. TLS 1.3 inclut les deux.

Salsa20 ou ChaCha20

ChaCha20 améliore Salsa20 grâce à une meilleure diffusion lors des premiers tours, ce qui offre une résistance accrue à la cryptanalyse différentielle. L'initialisation de l'état diffère. Les deux sont sûrs ; ChaCha20 est la norme actuelle.

ChaCha20 en Python

from cryptography.hazmat.primitives.ciphers.aead import ChaCha20Poly1305 import os key = ChaCha20Poly1305.generate_key() nonce = os.urandom(12) ct = ChaCha20Poly1305(key).encrypt(nonce, b'hello', None)

XChaCha20 : nonce étendu

ChaCha20 utilise un nonce de 96 bits. XChaCha20 l’étend à 192 bits au moyen de la fonction HChaCha20. Des nonces plus longs permettent une génération aléatoire sans risque de collision. libsodium utilise XChaCha20-Poly1305.

Vérification rapide

Pourquoi la conception ARX de ChaCha20 élimine-t-elle les canaux auxiliaires temporels du cache ?

Récapitulatif

ChaCha20 est élégant et sécurisé. Nous allons maintenant voir comment il est déployé dans TLS 1.3 sous la forme de ChaCha20-Poly1305 AEAD.
Gratuit pour commencer

Apprends Cryptology Academy avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
67
Leçons
261

Questions Fréquemment Posées

La leçon « Conception de Salsa20 et ChaCha20 » est-elle gratuite ?

Oui — le texte complet de « Conception de Salsa20 et ChaCha20 » 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 « Conception de Salsa20 et ChaCha20 » ?

Suivez le fonctionnement du quarter-round de ChaCha20 et découvrez sa vitesse sur le matériel mobile. 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 3 sur 4.

Combien de temps prend la leçon « Conception de Salsa20 et ChaCha20 » ?

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