En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies à des fins statistiques anonymes.
En savoir plus sur la gestion des cookies

Projets Informatique&Sciences du Numérique ISN

Projet « Dissimuler une image dans un son »

Par FRANCOIS PASSEBON, publié le lundi 16 juin 2014 18:55 - Mis à jour le lundi 16 juin 2014 19:21

En ISN, le projet soutenu oralement en fin d’année est un travail en petit groupe de deux ou trois élèves réparti sur 8 séances environ. Chaque groupe peut en proposer un ou bien faire son choix parmi ceux proposés par les professeurs d’ISN. Dans les deux cas, le projet doit être raisonnablement ambitieux : ambitieux, mais adapté au niveau des élèves qui ont à le mener. Le projet dont le principe est décrit ici est d’un niveau plus que correct.

En 2014, « Dissimuler une image dans un son » faisait donc partie des propositions. Les spécialistes parlent de stéganographie, qui consiste à dissimuler un message dans un autre.

Cela peut paraître bizarre mais c’est possible. C’est possible dès lors que le son et l’image sont sous forme numérique : dans les deux cas, l’information est stockée sous forme binaire, une combinaison de 0 et de 1 qui représentent des nombres. Simplement, les nombres usuels sont en base 10 (ils utilisent 10 symboles, de 0 à 9), alors qu’en binaire, c’est à dire en base 2, il n’y a que 2 symboles : le 0 et le 1. De ce fait, les nombres sont plus longs : le nombre 179 s’écrit par exemple 10110011 en binaire, mais c’est plus simple à stocker, sur disque dur ou disque optique par exemple, ou à transmettre, par câble, fibre optique, etc. puisqu’il n’y a que 2 niveaux possibles au lieu de 10.

A partir de là, comment dissimuler une image dans un son ?

Imaginons qu’on étudie les variations de température en un lieu donné. Plus on fait de mesures, en clair plus l’intervalle de temps entre deux mesures de température successives est petit, plus tout ça sera précis. Pour le son, c’est le même principe : sur un CD, l’amplitude de l’onde sonore a été mesurée 44100 fois par seconde ! Fois deux même puisqu’en stéréo, le signal pour l’oreille droite n’est pas le même que celui pour l’oreille gauche. Chaque mesure est enregistrée sur 16 chiffres binaires (16 bits). Pour simplifier, dans ce projet, on utilisait des échantillons (les mesures) de 8 bits.

Retour aux nombres usuels : prenons un nombre à 8 chiffres, par exemple 72515689. On veut utiliser un de ses chiffres pour dissimuler de l’information ; lequel choisir pour que cela se voie le moins possible ? Le dernier, celui des unités bien-sûr. Si on remplace le 9 par un 4 par exemple, on obtient 72515684, ce qui est presque pareil, alors que si c’est le premier chiffre qui est remplacé par un 4, on obtient 42515689, et là ça va se voir tout de suite. Faites-vous expliquer par votre banquier si ce n’est pas clair.

Au final, il s’agit donc d’insérer des chiffres codant une image dans d’autres chiffres codant un son.

Par exemple, l’image ci-dessous à gauche peut être cachée dans un son. Il suffit de l’agrandir pour voir qu’elle est faite de « carrés » de couleur uniforme, les pixels.

image 400 x 265 pixels détail d’un train d’atterrissage

Cette image fait 400x265 pixels soit 106000 pixels. La couleur de chaque pixel est une combinaison de 3 couleurs primaires, le rouge, le vert, et le bleu, chacune pouvant prendre 256 niveaux d’intensité, de 0 à 255.

En binaire, 8 chiffres sont nécessaires pour avoir 256 valeurs possibles, donc un pixel est codé sur 3x8 = 24 bits.

Et comme on dilue en quelque sorte l’information image dans celle du son, chaque pixel est réparti dans 24 échantillons sonores où il remplace le dernier chiffre.

Lorsqu’on écoute le son ci-joint (fichier .wav, voir "Documents à télécharger", ci-contre), on entend un « la », le la3, celui du diapason, celui de la tonalité du téléphone filaire lorsqu’on le décroche pour composer un numéro.

Quand on ouvre ce fichier dans un logiciel comme Audacity, qui permet de visualiser l’onde sonore, on ne remarque rien de particulier :

On voit une belle sinusoïde car c’est un son sinusoïdal. Et pourtant ... Ce son contient l’image ci-dessus, des deux avions, diluée sur la totalité de la durée du son. Ce n’est qu’un court extrait ci-dessus.

Avis aux amateurs : comment réaliser l’opération inverse, c’est à dire extraire l’image du son ?

Voilà le projet réalisé par deux élèves de terminale S cette année : dissimuler une image dans un son, puis extraire une image préalablement cachée dans un son.

Cela n’a pas été facile, mais ils y sont arrivés et quand on arrive à faire ça, c’est qu’on a quand même plutôt bien compris le principe de la numérisation d’un son ou d’une image, et c’est doublement bénéfique car on retrouve ces notions dans le dernier chapitre du cours de physique de terminale.

Pièces jointes

À télécharger

 / 1