[Mystery] N’ayez pas peur des spectres… audio (ou les énigmes avec Coagula)

Je pense que nombre d’entre vous connaissent déjà Coagula, mais pour les autres je vais vous proposer ici un petit tutoriel facile pour apprendre à cacher une image dans un fichier audio afin créer une mystery, et évidemment pour récupérer l’information si vous êtes confronté à ce type d’énigme.

SpectroAD

L’original à droite et sa version camouflée dans un fichier audio à gauche

Bienvenue dans l’univers fascinant de la stéganographie ! La stéganographie c’est l’art de placer une information, que l’on veut cacher, dans une autre bien visible. On peut ainsi dissimuler de bien des façons des informations dans du texte, une page HTML, une image et, dans le cas qui nous intéresse aujourd’hui, un fichier son. Nous verrons qu’il y a plusieurs façons de le faire, mais nous allons utiliser cette fois-ci le spectrogramme d’un son.

Voici, par exemple, le fichier .wav  et son contenu caché : 

CoagulaTB

Un TB passé au spectrogramme !

La dissimulation de l’information

Pour camoufler notre information (texte ou image) nous allons utiliser le logiciel Coagula. Le but de ce logiciel est de transformer une forme en son.

Pour faire simple :

Après avoir installé et ouvert Coagula, vous allez voir apparaître 4 fenêtres. Allons directement au but : vous avez deux choix. Soit vous importez une image qui contient l’information que vous souhaitez camoufler, soit vous dessinez directement l’information dans le cadre noir de Coagula, comme dans n’importe quel logiciel de dessin. L’importation d’images se fera aux formats .bmp, .gif, .jpg, .emf ou .wmf via la fonction « File > Open Image… ».

CoagulaPresentation

Le logiciel Coagula et ses 4 fenêtres

Si vous utilisez la fonction « dessin » de Coagula et que vous vous attendez à vous retrouver sous Gimp ou ne serait-ce que sous Paint, vous allez être très déçu. Coagula est un générateur de son et pas un logiciel de stéganographie. Ainsi vous ne pouvez pas ajouter d’image ou de texte. Vous pouvez simplement dessiner des formes et donc par exemple écrire un texte manuscrit. Ainsi, pour tout travail un peu fin, il vous faudra d’abord passer par votre logiciel de dessin préféré.

CoagulaPinceau

N’espérez pas beaucoup mieux avec la fonction « dessin »

Une fois l’information entrée, il ne nous reste qu’à générer un spectrogramme. Nous allons nous servir de la fonction « Sound > Render without Blue » (ou l’engrenage rouge et vert), le « blue » étant ici le bruit qui rendra notre spectre illisible. Et voilà ! C’est tout ! Nous avons maintenant un fichier Coagula.wav dans le dossier racine de notre logiciel. Je vous avais bien dit que c’était facile.

CoagulaRender

Un message écrit à la main prêt pour un rendu

Quelques précisions utiles :

Avant de vous lancer dans un chef d’oeuvre, pensez à faire simple et notamment ne superposez pas les couches d’information : le spectre généré serait incomplet. En effet l’axe des « x » correspond au temps : là vous pouvez mettre autant d’informations que vous voulez, cela générera simplement un fichier audio plus long. Par contre, l’axe des « y » correspond à la génération des fréquences audio. Ainsi, si vous empilez trop d’informations, le spectre va être saturé et vous allez perdre l’information mise sur la couche du bas. Un exemple sera mieux qu’un long discours.

CoagulaPerteInfo

On voit que si le haut est parfaitement lisible, le bas risque de poser des soucis de lecture

De plus, ne vous embêtez pas avec les couleurs aussi bien sur votre logiciel de dessin, que dans celui de Coagula, vous allez générer un spectre audio qui n’a évidemment aucune couleur. Celles-ci sont générées lors du rendu par le logiciel de décryptage.

Si vous avez eu assez d’informations ou si vous voulez tout de suite attaquer le décryptage, n »hésitez pas à passer la section suivante pour aller directement à « Décrypter l’information »

Pour aller plus loin : 

Le but premier de Coagula est de générer un son à partir d’une image. Son utilisation en stéganographie n’étant donc qu’une utilisation détournée, beaucoup d’outils ne vous serviront absolument à rien. Ainsi remplir le fond de l’image avec un motif, ne fera que brouiller complètement votre information. De même, beaucoup de brosses ne serviront pas et votre choix se résumera globalement à une brosse carrée ou ronde. Vous pourrez choisir la forme en cliquant sur le cercle (ou le carré) de la zone « Shape and Style ».

CoagulaMiror

Quelques modifications possibles de notre information

Par contre, les couleurs peuvent être intéressantes à manipuler. La couleur rouge correspond à la piste gauche et la couleur verte à la piste droite du fichier .wav. Le jaune sera donc le centre (gauche et droite à égalité). Le bleu ne nous servira pas, car il ajoute du bruit et nous l’enlevons lorsque nous faisons le rendu. En jouant avec les couleurs on peut avoir un spectre un peu original ou alors… on va pouvoir compliquer un peu les choses :p. Par défaut la brosse contient les couleurs vert et rouge donc les deux canaux gauche et droit. On pourrait par exemple écrire les coordonnées utiles à gauche (en rouge) et brouiller l’information à droite (en vert).

CoagulaDroite

Exemple d’une information qui sera encodé intégralement sur le canal de droite

Évidemment quand on a déjà rencontré ce genre de technique de stéganographie, il sera assez simple de la reconnaître à nouveau. Mais il est possible de fusionner notre fichier coagula avec un autre fichier son pour qu’il passe un peu plus inaperçu. Pour cela, j’ai utilisé Audacity pour mixer les deux fichiers, mais votre éditeur de fichiers audio préféré fera très certainement l’affaire !

Audacity_Logo_512px_white

Un très bon logiciel qui vous servira pour bien des énigmes audio

La première chose à faire est de mettre toutes les informations sur une des pistes stéréo. On importe donc notre fichier issu de Coagula, puis on clique sur « Pistes > Piste stéréo vers mono ».

CoagulaMonoStereo

Passage en mono

Ce qui est bien avec Audacity, c’est que l’on peut vérifier en direct l’état de notre spectre en cliquant sur la petite flèche à droite du nom de la piste, puis « Spectrogramme logarithmique décimal ». Vous pourrez ainsi suivre tout le temps ce que sera le résultat final. Pensez à le faire dès à présent, car j’ai parfois eu de mauvaises surprises lors du passage stéréo>mono.

CoagulaAudacityCheckSpectro

Le spectrogramme avec Audacity

Dans mon cas, je n’ai pris aucun risque, j’ai dès le départ placé tous mes sons à droite en écrivant tout en vert dans Coagula.

CoagulaPremierepiste

Mon fichier Coagula avec les informations sur le canal de droite

Nous pouvons donc importer notre seconde piste audio (Fichier > Importer ou un simple glisser-déposer). Ici, j’ai pris une musique que j’avais sous la main, mais évidemment la piste que vous choisissez fera passer le son du spectre audio de façon plus ou moins naturelle.

Pour rendre discrète l’intégration du fichier Coagula, nous allons l’insérer que sur un des deux canaux stéréo. Pour cela, il nous faut tout d’abord séparer les canaux en cliquant sur la flèche à gauche du nom de la piste « camouflage » puis « Séparer la piste stéréo ».

CoagulaSeparer

On ne va travailler que sur une des deux pistes

Ceci fait, nous n’avons plus qu’à insérer notre bout de stégano sur un des canaux. Il y a plusieurs méthodes, je vous en propose une : Sélectionner votre fragment de son Coagula, regardez sa durée et faite un Ctrl-X pour couper celle-ci. Ensuite, sélectionnez le début de la zone où vous voulez l’insérer sur votre piste « camouflage » puis en bas cliquez sur durée et mettez la durée de votre fragment (ou si vous êtes super balèze :p laissez sur « fin » et additionner les temps). À ce stade vous avez donc sélectionné une durée égale à la durée de votre message et il ne reste plus qu’à faire un Ctrl-V pour remplacer la sélection.

CoagulaAudacityIntervalle

L’étape de remplacement

Si sur le spectre, votre sélection fait un pic ou si vous voulez rendre les choses plus discrètes, il n’y a plus qu’à réduire le volume du fragment ajouté en allant dans « Effets > Amplification » et régler le curseur pour atteindre le niveau sonore souhaité. Il est possible de le régler très peu fort, car l’analyseur de spectre fonctionne (si l’utilisateur le sélectionne) par canaux.

CoagulaAmpli

Mise à niveau des volumes

Nous avons donc un fichier son bien plus discret que l’original et qui fera chercher au géocacheur, l’information dans tout le spectre. Mais attention à la cotation si vous ne mettez pas d’indice… Il ne reste plus qu’à exporter l’audio. On peut sans soucis le faire en MP3 sans perdre notre information : « Fichier > Exporter l’audio ».

Voici mon fichier final vite fait et sans chercher un camouflage parfait… et pour info, le message se trouve à 4’40 😉

Décrypter l’information

Pour faire simple : 

Si l’owner est sympa, il vous aura laissé le nom de fichier généré automatiquement par le logiciel Coagula qui fournit un fichier… Coagula.wav… eh oui, c’est super original ! De plus, le son de ce genre de fichier est assez caractéristique : je vous laisse l’écouter. Toutefois, d’autres fichiers sons avec de l’information cryptée peuvent ressembler à cela.

Je pense que le système le plus simple pour récupérer les données est d’utiliser Sonic Visualiser qui est spécialisé dans les analyses de spectres audio. Toutefois d’autres logiciels fonctionnent également très bien tels que Audacity.

Sonic.Visualiser.v2.1

Le logiciel le plus pratique pour voir les spectrogrammes

Une fois le logiciel ouvert, on peut importer notre fichier par glisser-déposer ou « File > Open ».

Nous voici avec un spectre audio assez classique et nous allons le modifier pour afficher le spectrogramme. Pour cela il faut aller dans « Layer > Add Spectrogramm > NomDuFichier:All channels mixed ».

CoagulaSonicSpectrogram

La seule étape à réaliser !

Et là, magie ! Un texte ou une image devrait apparaître. Si le fichier son est long ou si l’information semble écrasée, il faudra régler avec les molettes en bas à droite et/ou avec la barre de défilement du bas. Évidemment, vous pouvez lire le fichier avec « espace » pour retrouver le moment suspect.

CoagulaZoom

Une vue en mode linéaire qui sera meilleure en version logarithmique

Il y a des chances que vous ayez une meilleure vue en sélectionnant à droite de votre spectrogramme « Bins : log » à la place de linear. Tout simplement parce que Coagula utilise un codage logarithmique du spectre audio.

Pour aller plus loin :

Allez ! Première astuce juste pour le fun, je vous propose de changer la couleur de votre spectrogramme. À droite vous trouverez une liste déroulante « Colour » qui vous permettra, par exemple, d’avoir de chatoyantes couleurs rouges à la place du vert et jaune.

CoagulaCouleur

Le temps des cerises…

On peut améliorer un peu l’image en allant sélectionner, toujours dans la zone de droite, Window > 93.75%. Cela donne une image un peu plus fine, mais ne changera pas votre lecture de l’information.

Si vous avez Audacity et que vous souhaitez l’utiliser à la place de Sonic Visualiser. Il faudra cliquer sur la petite flèche à droite du nom de la piste, puis sur « Spectrogramme logarithmique décimal ». J’ai toutefois remarqué que pour les images complexes, j’ai de meilleurs résultats avec Sonic Visualiser

CoagulaHello

Spectrogramme (sur un canal) avec Audacity

 

Répondre

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l’aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s