Cryptology Academy · Leçon

CMAC et Poly1305 : MAC fondées sur un chiffrement par blocs

Comparez CMAC et Poly1305 comme solutions de remplacement aux MAC fondées sur le hachage.

Leçon 4 sur 413 étapes

CMAC et Poly1305 : MAC fondées sur un chiffrement par blocs 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.

Qu’est-ce qu’un MAC ?

Un code d’authentification de message (MAC) prend une clé et un message, puis produit une étiquette. Cette étiquette prouve que le message n’a pas été altéré et qu’il a été produit par une personne qui détient la clé.

HMAC et MAC fondés sur des chiffrements par blocs

HMAC utilise une fonction de hachage comme primitive. CMAC et Poly1305 utilisent à la place des chiffrements par blocs ou de l’arithmétique polynomiale. Les MAC fondés sur des chiffrements par blocs évitent de dépendre d’une fonction de hachage et s’intègrent naturellement au matériel AES.

Construction de CMAC

CMAC (MAC fondé sur un chiffrement) est défini dans NIST SP 800-38B. Il complète le message jusqu’à une limite de bloc, dérive deux sous-clés K1/K2 à partir du chiffrement, les combine par XOR avec le dernier bloc, puis exécute le mode CBC sans conserver les textes chiffrés intermédiaires.

Dérivation des sous-clés de CMAC

K1 = AES_K(0^128) décalé vers la gauche de 1 bit, puis combiné par XOR avec une constante si le MSB valait 1. K2 est obtenu en décalant K1 de la même manière. Ces sous-clés protègent le dernier bloc partiel contre l’extension de longueur.

Présentation de Poly1305

Poly1305 est un authentificateur à usage unique conçu par Daniel Bernstein. Il évalue un polynôme sur le nombre premier 2^130-5, en traitant le message comme un ensemble de coefficients polynomiaux et en utilisant une paire de clés à usage unique (r, s).

Mathématiques de Poly1305

Tag = (sum of (m_i * r^i) mod 2^130-5) + s mod 2^128. La clé r est limitée à 22 bits spécifiques afin d’empêcher les attaques temporelles. s est un masque d’addition à usage unique de 16 octets.

ChaCha20-Poly1305

Poly1305 est presque toujours associé à ChaCha20. ChaCha20 génère la paire (r, s) à usage unique à partir du flux de clés du chiffrement par flot, ce qui rend le schéma AEAD combiné démontrablement sûr et extrêmement rapide sur les processeurs ARM et mobiles.

AES-GCM et AES-CMAC

AES-GCM authentifie à l’aide de GHASH, un MAC polynomial sur GF(2^128). AES-CMAC est plus simple et est utilisé dans IEEE 802.11i (WPA2) ainsi que dans les suites de chiffrement de TLS 1.2. GCM fournit à la fois le chiffrement et l’authentification en un seul passage.

Comparaison des performances

Poly1305 sur ARM Cortex-A atteint environ 1 cycle/octet grâce aux intrinsèques NEON. AES-CMAC nécessite une opération de chiffrement AES par bloc de 16 octets. Pour les données volumineuses, Poly1305 est plus performant que CMAC sur le matériel dépourvu d’AES-NI.

Propriétés de sécurité

CMAC est existentiellement infalsifiable contre les attaques à messages choisis, en supposant qu’AES soit une permutation pseudoaléatoire. Poly1305 est sûr au sens de la théorie de l’information avec une clé à usage unique véritablement aléatoire — la probabilité de falsification est au plus de 8*ceil(L/16)/2^106.

Cas d’utilisation

CMAC : WPA2, S/MIME, intégrité du système de fichiers. Poly1305 : TLS 1.3 via ChaCha20-Poly1305, réseau privé virtuel WireGuard, protocole Signal, cadre de protocoles Noise. Tous deux sont largement déployés dans des systèmes modernes à haute sécurité.

Vérification rapide

Quel MAC est utilisé dans l’AEAD ChaCha20-Poly1305 ?

Récapitulatif

Vous avez appris la construction de CMAC fondée sur CBC et l’arithmétique polynomiale de Poly1305. Tous deux sont des MAC sûrs à temps d’exécution constant, utilisés dans des protocoles réels. Ensuite : TLS/HTTPS et la façon dont toutes ces primitives se composent.

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 « CMAC et Poly1305 : MAC fondées sur un chiffrement par blocs » est-elle gratuite ?

Oui — le texte complet de « CMAC et Poly1305 : MAC fondées sur un chiffrement par blocs » 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 « CMAC et Poly1305 : MAC fondées sur un chiffrement par blocs » ?

Comparez CMAC et Poly1305 comme solutions de remplacement aux MAC fondées sur le hachage. 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 « CMAC et Poly1305 : MAC fondées sur un chiffrement par blocs » ?

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 MAC et attaques par extension de longueur
  2. Construction HMAC et preuve de sécurité
  3. HMAC dans les API : signature des requêtes
  4. CMAC et Poly1305 : MAC fondées sur un chiffrement par blocs
← Retour à Cryptology Academy