Créa-blog

#100JoursPourCoder
Projet Créa-code

Ressources pour développeur web

Théme de la semaine : Découvrir node.js

Maths et développement web : Entropie, redondance et compression

Temps de lecture estimé : 10 minutes
Accueil Maths et web Maths et développement web : Entropie, redondance et compression

Dans le monde du développement web, nous parlons souvent de performance, d’optimisation, de taille de fichiers, de vitesse de chargement. Au premier regard, cela semble être des sujets purement techniques. Pourtant, derrière ces questions très concrètes se cache une dimension discrète mais passionnante : les mathématiques.

Pas les mathématiques théoriques difficiles à la manière des équations qu’on gribouillait au tableau en cours, mais celles qui aident à organiser, simplifier et transmettre de l’information.

Pour comprendre comment un fichier ZIP réduit la taille d’un dossier, pourquoi une image JPEG perd un peu de qualité en étant compressée, ou encore comment fonctionne l’encodage MP3 de la musique que vous écoutez, il faut remonter à la notion d’information elle-même. Qu’est-ce que signifie transmettre un message ? Qu’est-ce qu’une donnée ? Comment peut-on réduire son poids sans perdre son sens ?

Ces questions ont mené à l’une des théories les plus influentes de l’informatique moderne : la théorie de l’information. Et au cœur de cette théorie, il y a la notion d’entropie.

  • Comprendre comment l’entropie et la redondance influencent la manière dont les données sont stockées, transmises et interprétées.
  • Savoir choisir et ajuster les formats de compression pour optimiser la qualité et la performance d’un site web.
  • Acquérir une vision claire du lien entre imprévisibilité, mots de passe robustes et sécurisation des données.

Nous allons partir de zéro, expliquer chaque concept avec patience, en avançant doucement, avec des images simples. L’objectif n’est pas de briller avec des démonstrations, mais de comprendre profondément, avec les mains sur le clavier et l’esprit tranquille.

Comprendre ce qu’est une information

Avant de parler de compression ou de cryptographie, il faut se mettre d’accord sur ce qu’est une information. Imaginez que vous envoyiez un message très simple à un ami : « J’arrive ».

Dans son état bruyant, ce message est du texte, composé de lettres. Pourtant, en réalité, c’est juste une suite de symboles. Dans un ordinateur, ces symboles sont transformés en bits, qui sont des 0 et des 1. Tous les fichiers numériques, qu’ils soient audio, photo, vidéo, code ou texte, ne sont finalement que d’énormes suites de 0 et de 1.

Une information, dans ce sens, est donc un choix parmi plusieurs possibilités. Prenons une pièce de monnaie. Elle peut tomber sur pile ou face. Deux possibilités. Si une information n’offre qu’une seule possibilité, elle ne transporte rien. Si elle offre plusieurs possibilités, elle transporte un certain « poids ».

Plus il y a de possibilités, plus l’information a un « poids », c’est-à-dire plus elle demande de bits pour être représentée. Cela nous amène à une idée centrale : l’information dépend de l’incertitude.

L’entropie : mesurer l’incertitude d’une information

Le mot peut faire peur. Il rappelle les cours de physique, la chaleur, les gaz, bref… quelque chose de compliqué. Ici, pourtant, l’entropie est très intuitive. Elle mesure le niveau d’incertitude dans une donnée.

Si une information est totalement prévisible, elle n’embarque presque aucune information. Si elle est totalement imprévisible, elle en contient beaucoup.

Imaginons deux phrases :

  • « Bonjour Bonjour Bonjour Bonjour Bonjour »
  • « Bonjour salut coucou hey yo »

Dans la première, vous avez compris dès la première répétition que tout sera identique. Aucune surprise. Peu d’information.

Dans la seconde, chaque mot est imprévisible. L’information est plus « dense ».

L’entropie permet de quantifier cette imprévisibilité. Shannon, le chercheur qui a théorisé cela, expliquait que l’information est mesurée par la quantité de surprise.

Plus une donnée est surprenante, plus elle contient d’information.

Dans une image totalement noire, il n’y a aucune surprise. On peut la décrire très facilement. Dans une photographie pleine de détails, il y a beaucoup d’information.

La redondance : quand une information se répète trop

La redondance est l’opposé de l’entropie. Lorsque des données se répètent inutilement, elles augmentent la taille d’un fichier sans apporter d’information supplémentaire. Par exemple :

AAAAAAAAAAAAAAAAAAAA

Vous comprenez qu’il s’agit simplement de la lettre A répétée plusieurs fois. Il n’est pas nécessaire de l’écrire vingt fois. On pourrait dire :

20 × A

Cela prend moins de place tout en disant la même chose.

Dans un fichier, la redondance est ce que les algorithmes cherchent à éliminer. L’objectif de la compression est précisément celui-ci : repérer ce qui se répète et le représenter plus efficacement.

Première rencontre avec la compression : le fichier ZIP

Le format ZIP combat la redondance. Pour simplifier, voici ce qu’il fait :

  1. Il parcourt les données.
  2. Il cherche les motifs qui se répètent.
  3. Il remplace ces répétitions par une référence plus courte.

Par exemple, dans un fichier texte contenant :

bonjourbonjourbonjourbonjour

Il peut remplacer chaque « bonjour » par un code plus court, par exemple B. Et stocker à côté :

B = bonjour.

Ainsi, au lieu d’écrire 4 × 7 lettres, il stocke 4 × 1 lettre + une définition. Résultat : le fichier pèse moins lourd.

Ce principe est appelé compression sans perte, parce qu’une fois décompressé, nous retrouvons exactement l’original. Aucun détail n’est perdu.

ZIP, PNG, GIF : ces formats sont basés sur ce principe.

Mais bientôt, nous allons voir que ce n’est pas toujours possible. Et c’est là qu’entrent en scène des formats comme JPEG et MP3.

Quand la compression accepte de perdre de l’information : JPEG, MP3 et compagnie

Jusqu’ici, nous avons vu la compression dite « sans perte », c’est-à-dire celle qui réduit la taille des fichiers sans supprimer la moindre information. ZIP en est un bon exemple : on peut compresser et décompresser à l’infini sans perdre un bit.

Cependant, dans la pratique, tout n’a pas besoin d’être stocké dans sa forme la plus exacte. Cela dépend fortement du type de données.

Prenons une image. Une photographie numérique contient des milliers, parfois des millions de pixels. Chaque pixel est décrit par plusieurs valeurs représentant des couleurs (généralement trois, pour le rouge, le vert et le bleu). Si l’image est très précise, très détaillée, elle occupera beaucoup de mémoire.

Mais maintenant, posez-vous une question simple : êtes-vous capables, en tant qu’êtres humains, de percevoir chaque variation minuscule de couleur qu’un ordinateur enregistre ? Non.

L’œil humain n’est pas parfait. Il ne distingue pas toutes les nuances possibles, surtout lorsque l’image est en mouvement ou lorsque l’on ne s’arrête pas sur chaque pixel. De même, notre oreille n’entend pas toutes les fréquences sonores avec la même précision. Certaines fréquences passent inaperçues. D’autres sont masquées par des sons plus forts.

Les algorithmes de compression avec perte se basent précisément sur cette limite humaine. Ils se disent quelque chose comme :

Si l’humain ne peut pas percevoir tel détail, pourquoi le garder en mémoire ?

Et c’est exactement ce que font JPEG pour les images et MP3 pour la musique.

Le JPEG : simplifier l’image pour l’œil humain

Représentons un carré de pixel d’une image. Imaginons que plusieurs zones voisines aient presque la même couleur. Par exemple, une partie du ciel bleu.

Dans un fichier RAW (format brut sortant d’un appareil photo), chaque pixel est stocké quasiment sans traitement. Mais dans un JPEG, le logiciel va analyser l’image et se dire : Dans cette région, la couleur change très peu. On peut l’approximer.

Compression avec perte signifie que l’on accepte volontairement de perdre une petite partie des détails. En contrepartie, la taille du fichier diminue fortement.

Ce que fait JPEG est assez astucieux. Il découpe l’image en blocs, analyse les variations de luminosité et de couleur, et encode ces variations de manière simplifiée. Ainsi, des zones uniformes sont très bien compressées. Cela explique pourquoi les ciels, les murs, les surfaces unies se compressent très bien, tandis que les images contenant du texte ou des motifs précis se compressent moins bien ou deviennent « floues ».

Si vous avez déjà augmenté un JPEG en zoomant, vous avez peut-être vu des petits blocs carrés. On les appelle des artefacts. Ils sont la signature de la compression.

Le MP3 : simplifier le son pour l’oreille humaine

Le MP3 applique le même principe au son.

Une onde sonore est très complexe. Si vous enregistrez une musique en qualité brute (format WAV non compressé), vous obtiendrez un fichier énorme. Pourtant, l’oreille humaine n’entend pas toutes les fréquences de la même façon. Certaines sont trop aiguës ou trop graves, d’autres sont masquées par le volume d’un instrument.

Le MP3 analyse ces limites biologiques et supprime ce que vous n’entendrez pas.

Imaginons une scène musicale : Vous entendez une batterie très forte. Derrière, un bruit léger comme le frottement d’un médiator sur une corde de guitare existe, mais il est totalement noyé. Le MP3 va l’ignorer parce que vous ne le percevrez pas quand vous écouterez la musique. Le fichier devient alors beaucoup plus léger.

Formation web et informatique - Alban Guillier - Formateur

Des formations informatique pour tous !

Débutant ou curieux ? Apprenez le développement web, le référencement, le webmarketing, la bureautique, à maîtriser vos appareils Apple et bien plus encore…

Formateur indépendant, professionnel du web depuis 2006, je vous accompagne pas à pas et en cours particulier, que vous soyez débutant ou que vous souhaitiez progresser. En visio, à votre rythme, et toujours avec pédagogie.

Découvrez mes formations Qui suis-je ?

Il ne s’agit pas de déformer la musique, mais de ne pas stocker de l’information inutile visuellement ou auditivement.

Lorsque les premiers codecs MP3 ont été testés dans les années 1990, les ingénieurs ont fait écouter des versions compressées et non compressées à des musiciens professionnels. Un violoniste aurait déclaré en entendant la version compressée :
« Je reconnais mon jeu, mais j’ai l’impression qu’il manque un souffle dans l’archet. »

Ce détail représente précisément ce que la compression supprime : quelque chose que la plupart ne remarqueront jamais, sauf l’oreille entraînée qui connaît chaque vibration de son instrument.

Les ingénieurs ont alors ajusté l’algorithme. Cela montre que la compression avec perte est un compromis subtil entre mathématiques, perception humaine et ressenti émotionnel.

Pourquoi tout cela est essentiel en développement web ?

Lorsque vous développez un site, vous avez souvent à gérer :

  • des images,
  • des vidéos,
  • du son,
  • du texte,
  • du code.

Chaque fichier doit être téléchargé par l’utilisateur. Plus le fichier est volumineux, plus le site est lent. Et plus un site est lent, plus les visiteurs s’en vont. Google pénalise les sites lents. Votre référencement en souffre.

La compression n’est donc pas seulement une curiosité mathématique. C’est un enjeu professionnel. Le développeur web moderne doit comprendre au moins ceci :

  • Un fichier ne doit pas être plus lourd que nécessaire.
  • La performance est une qualité essentielle.
  • Comprendre l’entropie, la redondance et la compression est un atout très concret.

Vous savez désormais distinguer :

  • compression sans perte, où l’on garde exactement la donnée d’origine
  • compression avec perte, où l’on supprime des détails imperceptibles

Nous allons maintenant voir un autre concept clé, qui semble éloigné mais repose sur la même idée : l’entropie appliquée à la sécurité.

Quand l’entropie devient sécurité : cryptographie et mots de passe

Nous avons vu que l’entropie mesure le niveau d’incertitude dans une information. Plus une donnée est prévisible, plus son entropie est faible. Plus elle est surprenante, plus elle est élevée. Cette notion est fondamentale en cryptographie.

Lorsque vous choisissez un mot de passe, votre objectif est de rendre sa structure difficile à deviner. Un mot de passe comme « azerty123 » est très faible. Il est composé de patterns évidents, faciles à anticiper. Il est d’ailleurs testé automatiquement par les outils utilisés par les pirates, car il figure parmi les mots de passe les plus utilisés au monde.

Découvrez comment Tester / Craquer un mot de passe

En revanche, un mot de passe comme « Fn4uQz7Bsp19 » est beaucoup plus imprévisible. Il contient des lettres mélangées, des minuscules, des majuscules, des chiffres. Il est difficile de le deviner par force brute. Son entropie est élevée.

Pour simplifier, plus un mot de passe contient de symboles possibles (chiffres, lettres, caractères spéciaux), plus son entropie augmente, parce qu’il existe plus de combinaisons possibles.

L’objectif de la cryptographie est donc de rendre difficile l’anticipation d’une information.

Aller plus loin avec notre tutoriel d’initiation à la cryptographie.

Chiffrement : cacher l’information en la transformant

La cryptographie est l’art de transformer une information lisible en une information illisible sans la clé. Prenons une phrase simple :

Rendez-vous à 20h devant la bibliothèque

Si l’on chiffre ce message, on obtient quelque chose comme :

Tm9qeS1xZ2ZzLXBzdDQ1aC1sYXNkYmY=

Ce qui n’a plus aucun sens à l’œil nu. Pourtant, si l’on possède la clé de décryptage, on peut revenir à l’original, comme pour une fermeture éclair que l’on ouvre ou ferme.

Le chiffrement s’appuie souvent sur des opérations mathématiques qui transforment un message selon une clé secrète. Sans la clé, il est théoriquement impossible de retrouver le message original.

Mais attention : ce n’est pas l’algorithme qui doit rester secret. L’algorithme peut même être public. Ce qui doit rester secret, c’est la clé.

La sécurité repose donc sur l’entropie de la clé.

  • Une clé faible, trop courte, trop prévisible, sera vulnérable.
  • Une clé longue, imprévisible, bien générée, sera solide.

C’est le même principe qu’un cadenas de vélo : si vous achetez un cadenas premier prix qui se coupe avec une pince, même la plus belle des serrures ne sert pas à grand-chose.

Découvrez les types de cryptographies et les algorithmes BCrypt et Argon2.

Hasard, générateurs aléatoires et importance du vrai aléatoire

Pour générer une bonne clé ou un bon mot de passe, il faut du hasard. Un vrai hasard, difficile à reproduire. En informatique, c’est délicat, parce qu’un ordinateur fait ce qu’on lui dit. Il est logique. Prévisible.

Pour simuler le hasard, on utilise des générateurs pseudo-aléatoires. Ils produisent des suites qui « semblent » aléatoires. Pour la plupart des usages, cela suffit : par exemple générer un identifiant temporaire.

Mais pour la cryptographie, ce n’est pas suffisant. Il faut des sources d’aléa issues du monde réel, comme :

  • des variations électriques imperceptibles,
  • le mouvement de la souris,
  • le bruit généré par un disque dur,
  • la latence réseau.

Ces éléments sont imprévisibles car ils ne suivent pas une logique déterministe accessible à l’ordinateur. Ils augmentent donc l’entropie des clés générées.

C’est un point souvent méconnu : une sécurité solide ne repose pas uniquement sur du code, mais sur de la vraie incertitude.

Une image parlante : le cadenas et la serrure

Pour bien comprendre, imaginons un coffre fort. Le coffre est l’algorithme de chiffrement. Il est public. Tout le monde peut l’examiner, le tester, le démonter, et dire : « Oui, ce coffre est solide, personne ne peut l’ouvrir par la force brute. »

La clé du coffre, c’est votre mot de passe. Si la clé est simple, comme une tige métallique droite, même un bon coffre devient inutile. Si la clé est extrêmement complexe, taillée avec précision, alors même un coffre standard devient presque inviolable.

La cryptographie moderne repose sur cette idée simple : Ce n’est pas le secret de la méthode qui protège l’information, c’est la qualité de la clé.

Pourquoi le développeur web doit-il comprendre cela ?

Dans le web moderne, vous manipulez des données sensibles :

Si ces informations sont mal protégées, votre site peut être compromis en quelques secondes. Un attaquant n’a pas besoin de « hacker » dans le sens hollywoodien du terme. Il lui suffit parfois de deviner une faiblesse ou une répétition. Et voilà : la redondance devient une faille.

  • Un mot de passe répété.
  • Un token prévisible.
  • Un cookie mal généré.

Cela revient à donner une copie de la clé à quelqu’un qui n’a rien demandé.

La sécurité n’est pas un mur infranchissable. C’est une probabilité d’intrusion que vous essayez de rendre extrêmement faible. Et plus l’entropie est grande, plus la probabilité d’attaque réussie diminue.

Les mathématiques sont donc là, discrètes, mais essentielles.

L’information, c’est une histoire de sens, de forme et de confiance

Nous avons traversé plusieurs domaines qui, à première vue, n’ont pas beaucoup de points communs : compression de fichiers, perception humaine, cryptographie. Pourtant, ils sont liés par une même question :

Comment gérer l’information ?

Dans une image JPEG, nous acceptons de perdre un peu de précision car l’œil ne verra pas la différence. Dans un fichier ZIP, nous cherchons à éliminer ce qui se répète pour ne garder que le nécessaire. Dans un mot de passe, nous voulons éviter la répétition et la prévisibilité, afin de conserver ce qui est rare, surprenant, difficile à deviner.

L’entropie, la redondance, la compression, la sécurité : tous ces concepts sont des histoires de mesure de l’incertitude.

Ce que vous devez retenir n’est pas la formule mathématique derrière l’entropie, mais la philosophie :

  • Plus une donnée est prévisible, moins elle a de valeur.
  • Plus elle est imprévisible, plus elle est riche en information ou en sécurité.

En tant que développeur web, vous êtes donc, sans toujours le savoir, un gestionnaire de flux d’information. Vous choisissez quoi stocker, quoi transmettre, quoi réduire, quoi protéger. Vous naviguez entre performance et fidélité, entre précision et fluidité.

La théorie de l’information n’est pas un domaine lointain réservé aux chercheurs. C’est un outil vivant qui influence chaque image que vous chargez, chaque fichier que vous transférez, chaque mot de passe que vous créez.

Et plus vous la comprenez, plus vous développez avec intention, conscience et maîtrise.