🔐 Les briques cryptographiques : primitives et constructions

Si la cryptographie était un château fort, les primitives cryptographiques seraient les briques, le mortier et la porte blindée. Individuellement, elles paraissent simples, mais c’est leur combinaison qui permet de bâtir des systèmes robustes : chiffrement des disques, messageries sécurisées, signatures électroniques, paiements en ligne… Bref, toute notre vie numérique repose sur elles.

🧱 C’est quoi une “primitive” ?

Une primitive cryptographique, c’est une fonction de base qui sert de brique élémentaire. Elle est :

  • Mathématiquement solide (difficile à inverser ou à casser),
  • Bien définie (spécification claire, implémentations multiples),
  • Réutilisable (on peut l’employer dans des constructions plus grandes).

👉 Exemple : SHA-256 (fonction de hachage) est une primitive, mais la blockchain Bitcoin est une construction qui l’utilise.


🔑 Les grandes familles de primitives

1. Les fonctions de hachage (hash functions)

Une fonction de hachage prend une entrée de taille variable (un mot de passe, un fichier) et produit une empreinte de taille fixe (ex. 256 bits).

Caractéristiques :

  • Déterministe : la même entrée donne toujours le même résultat.
  • Non réversible : impossible de retrouver l’entrée depuis le hash.
  • Résistante aux collisions : difficile de trouver deux entrées différentes avec le même hash.

📌 Exemple concret :

  • SHA-256 dans Bitcoin (preuve de travail),
  • Stockage des mots de passe (bcrypt, Argon2 → hash renforcé).

⚠️ Piège classique : stocker des mots de passe en MD5… autant laisser la clé de la banque sous le paillasson.


2. Les générateurs de nombres aléatoires (RNG)

La crypto repose sur le hasard… mais un hasard vraiment aléatoire.

  • Si ton générateur est prévisible, tes clés le sont aussi.
  • Un mauvais RNG, et tout ton système tombe comme un château de cartes.

📌 Exemple célèbre : en 2008, Debian avait patché OpenSSL de manière maladroite → des millions de clés générées étaient… prévisibles. Résultat : carnage sécuritaire.


3. Le chiffrement symétrique (blocs & flux)

C’est la brique de base pour rendre illisible une donnée.

  • Algorithmes par blocs : AES (128, 192, 256 bits).
  • Algorithmes par flux : ChaCha20 (rapide, utilisé dans TLS moderne).

On combine souvent ces briques avec des modes d’opération (CBC, GCM…) pour ajouter intégrité et sécurité.

📌 Exemple concret : chiffrement disque BitLocker (AES-CBC), ou messageries type Signal (AES + ChaCha20).


4. Les MAC (Message Authentication Codes)

Un MAC permet de vérifier l’intégrité et l’authenticité d’un message.

  • On ajoute une sorte de “tampon secret” pour s’assurer qu’un message n’a pas été modifié.
  • Exemple : HMAC-SHA256 (utilisé dans les API, JWT, OAuth).

⚠️ Erreur courante : croire qu’un simple hash garantit l’authenticité → non, il faut une clé partagée (sinon n’importe qui peut recalculer le hash).


5. Les primitives asymétriques (un avant-goût)

Même si on y revient dans l’épisode 5, rappelons qu’il existe des briques basées sur des mathématiques costaudes (factorisation, courbes elliptiques).
Elles servent à :

  • Générer des paires de clés (publique/privée),
  • Signer des documents,
  • Échanger des secrets de manière sécurisée.

📌 Exemple concret : RSA, Diffie-Hellman, courbes elliptiques (ECC).


🏗️ Des briques aux constructions

Une fois qu’on a les primitives, il faut les assembler en protocoles et constructions.
Exemples :

  • TLS (HTTPS) : utilise RSA/ECC pour l’échange de clés, AES pour le chiffrement, HMAC pour l’intégrité.
  • Blockchain : hachage pour les blocs, signatures pour valider les transactions.
  • VPN/IPSec : combine asymétrique pour initier la session + symétrique pour la rapidité.

Chaque fois, on retrouve les mêmes briques, mais combinées intelligemment.


🎨 Schéma mental simple

Imagine :

  • 🔑 Clé → générée par RNG
  • 📦 Message → chiffré avec AES
  • 🧾 Hash → SHA-256 pour résumé
  • ✅ HMAC → authentifie le message
  • 🔐 RSA/ECC → échange la clé AES en toute sécurité

➡️ C’est exactement ce qui se passe chaque fois que tu te connectes en HTTPS sur ton navigateur.


⚠️ Les erreurs classiques

  • Réinventer la roue : coder son propre algo crypto (erreur fatale).
  • Mauvais choix de primitive : MD5 ou SHA1 encore utilisés en entreprise.
  • Mauvais assemblage : chiffrement sans intégrité → vulnérable aux attaques.
  • Clés statiques et jamais renouvelées : un classique dans les systèmes industriels.

📝 Mini-fiche récap (à retenir)

  • Les primitives sont les briques de base (hash, RNG, chiffrement, MAC).
  • Elles doivent être utilisées dans des constructions éprouvées (protocoles, bibliothèques).
  • La sécurité d’un système dépend autant du choix des briques que de leur assemblage.

✨ Conclusion :
La cryptographie n’est pas une magie noire, mais un jeu de Lego géant. Avec de bonnes briques, bien posées, on construit des forteresses numériques. Avec des briques mal choisies ou mal assemblées, on obtient… un château de sable.

🔐 Les briques cryptographiques : primitives et constructions
Partager cet article : Twitter LinkedIn WhatsApp

🖋️ Publié sur SecuSlice.com

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut