web-dev-qa-db-fra.com

Comment cacher des informations dans une photo jpg ou gif?

Comment puis-je écrire des informations dans un fichier photo comme jpg ou gif sans détruire l'image? et bien sûr sans le montrer sur la photo puisque l'idée est d'envoyer des informations dans le fichier photo non détectées par quiconque (pour assurer la sécurité/confidentialité dans une certaine mesure)!

22
M. A. Kishawy

Vous pouvez stocker des informations dans des métadonnées d'image. En fait, c'est ainsi que les appareils photo numériques de l'homme "marquent" les photos qu'ils prennent (modèle d'appareil photo, date et heure, coordonnées GPS, etc.).

Ce format de données est appelé EXIF (Exchangeable Image File Format). Il y a beaucoup d'exemples pour l'utiliser dans les langages de programmation. Voici l'exemple en Java.

Si vous voulez empêcher les utilisateurs de lire ces données, vous pouvez les chiffrer d'une manière ou d'une autre, mais ils pourront toujours les supprimer de votre image (en l'ouvrant dans Photoshop et en utilisant Enregistrer sous par exemple).

3
RaYell

Vous pouvez concaténer un gif et un Zip (les informations que vous souhaitez masquer) dans un seul fichier. Les gifs sont lus depuis le début du fichier, tandis que les zips sont lus depuis la fin du fichier.

Pour créer un tel fichier sous linux:

$ cat file1.gif >> outfile.gif
$ cat file2.Zip >> outfile.gif

Le fichier résultant doit avoir la taille de file1.gif et file2.Zip ensemble et doit pouvoir être ouvert par n'importe quel visualiseur gif et gestionnaire de fichier Zip.

47
Maik

Je suis sûr qu'il y a plusieurs façons. En voici un:

Sur une photographie, des variations mineures de couleur sont souvent imperceptibles à l'œil nu, ou même si elles sont remarquées, elles peuvent facilement être confondues avec des défauts de qualité de l'image.

Donc, pour prendre un exemple simple, supposons que vous ayez une image GIF à niveaux de gris où la palette est disposée dans l'ordre du blanc au noir avec une gamme lisse de gris entre les deux. Je ne sais pas exactement ce que vous savez sur les formats de fichiers graphiques, mais dans GIF, vous avez un octet par pixel, avec chaque mappage de valeur d'octet possible vers une couleur spécifique. Donc, dans ce cas, nous pourrions dire palette # 0 = RVB (0,0,0), palette # 1 = RVB (1,1,1), ... palette # 255 = RVB (255,255,255).

Ensuite, vous prenez une vraie photo ordinaire. Divisez votre message secret en bits individuels. Définissez le dernier bit de chaque numéro d'index de palette sur les bits successifs de votre message.

Par exemple, supposons que les huit premiers pixels de la photo d'origine soient, disons, 01 00 C9 FF FF C8 42 43. Votre message commence par la lettre "C", code ascii 0110 0111. Vous modifiez donc le dernier bit du premier octet à 0, en changeant l'octet de 01 en 00. Vous changez le dernier bit du deuxième octet en 1, en changeant l'octet de 00 en 01. Vous changez le dernier bit du troisième octet en 1. C'est déjà 1, donc cela fait aucune différence. Etc. Vous vous retrouvez avec les 8 octets codés étant 00 01 C9 FE FF C9 43 43.

Les changements de couleurs seraient si subtils qu'il est peu probable que quiconque regarde l'image le remarque. Même s'ils l'avaient remarqué, à moins qu'ils n'aient une raison de se méfier, ils concluraient probablement que l'image était de qualité moins que parfaite.

Bien sûr, rien ne dit que vous devez utiliser 1 bit par octet pour le message secret. En fonction de la dégradation de la qualité avec laquelle vous pensez pouvoir vous en sortir, vous pouvez utiliser 2 bits par octet, ou simplement changer 1 bit dans tous les autres octets, etc.

Bien sûr, la même technique peut être utilisée avec des photos couleur: changez le dernier bit de chacun des composants RVB pour encoder 3 bits par pixel, etc.

28
Jay

Hé, cette méthode s'appelle la stéganographie. Avec cela, nous pouvons masquer les messages non seulement dans les images, mais aussi dans l'audio, le vedeo et d'autres formats.

Voici un logiciel de stéganographie opensouce appelé steganotool Ce projet est un outil de stéganographie open source qui peut être utilisé pour masquer et extraire du texte vers/à partir d'images Bitmap.

À propos des médiums de stéganographie

La stéganographie en images

Ce type de stéganographie est très efficace contre la découverte et peut servir à diverses fins. Ces objectifs peuvent inclure l'authentification, la dissimulation de messages et la transmission de clés de chiffrement. La méthode la plus efficace pour ce type de stéganographie est normalement la méthode des bits les moins significatifs. Cela signifie simplement que le message caché modifiera le dernier bit d'un octet dans une image. En modifiant ce dernier bit, il n'y aura relativement aucun changement à la couleur de ce pixel dans l'image porteuse. Cela empêche le message d'être facilement détecté. Le meilleur type de fichier image pour cacher des informations à l'intérieur est un bitmap 24 bits. Cela est dû à la grande taille du fichier et à la haute qualité.

Steganography in Audio

Dans les fichiers audio, la méthode la plus importante pour masquer des informations est la méthode de codage à faible bit. La méthode d'encodage des bits faibles est quelque peu similaire à la méthode des bits les moins significatifs utilisée dans les fichiers image. Les informations secrètes sont jointes à la fin du fichier. L'un des problèmes du codage à faible bit est qu'il peut être perceptible par l'oreille humaine. Si quelqu'un essaie de cacher des informations, cela pourrait être risqué, car elles sont si facilement détectables. La méthode du spectre étalé est une autre méthode qui a été utilisée pour dissimuler des informations dans des fichiers audio. Ce que fait cette méthode, c'est qu'elle ajoute du bruit aléatoire à la diffusion audio. Cette méthode permet de diffuser les informations sur le spectre de fréquences et de les cacher sous le bruit aléatoire. La dernière méthode observée dans la stéganographie audio consiste à masquer les données d'écho. Cette méthode cherche à masquer des informations en utilisant les échos qui se produisent naturellement dans les fichiers audio. Ensuite, un son supplémentaire peut être ajouté à ces échos, le son supplémentaire étant le message caché. C'est un moyen suffisant pour masquer des informations, d'autant plus qu'il améliore même le son du fichier audio d'origine dans certains cas.

La stéganographie en vidéo

La stéganographie dans les vidéos cache essentiellement des informations dans chaque image de la vidéo. Seule une petite quantité d'informations est cachée à l'intérieur de la vidéo, elle n'est généralement pas visible du tout, mais plus il y a d'informations cachées, plus elles deviendront visibles. Cette méthode est également efficace, mais elle doit être bien faite ou bien révéler plus d'informations au lieu de se cacher.

Steganographie dans les documents

Il s'agit essentiellement d'ajouter des espaces blancs et des tabulations aux extrémités des lignes d'un document. Ce type de stéganographie est extrêmement efficace, car l'utilisation d'espace blanc et de tabulations n'est pas visible à l'œil humain dans la plupart des éditeurs de texte/document.

Vous pouvez également vous référer à cela projet open source

Cette article peut être très utile.

10
Arjun

Si vous souhaitez masquer des données (texte, autre image, peu importe) dans un fichier jpeg, vous pouvez simplement l'ajouter à la fin du fichier. Lorsque l'image est affichée, vous ne verrez que l'image d'origine et vos données ajoutées seront ignorées.

Bien que ce ne soit pas un moyen super-duper de cacher des données, c'est un bon moyen de cacher un autre jpeg, comme si quelqu'un ouvrait le fichier dans le bloc-notes ou un éditeur hexadécimal, ils ne remarqueront probablement pas qu'il y a deux jpeg et pas un parce que la fin de la deuxième image ressemblera de toute façon à la première.

2
Chris

Dans Windows, vous pouvez utiliser une commande simple pour masquer l'archive dans l'image: copier/b cat.jpg + Documents.rar cat_new.jpg. Et puis utilisez par exemple winrar pour extraire les données de l'image ftom à partir de l'archive.
Mais la meilleure façon est d'utiliser la stéganographie.
programme simple pour Linux et Windows: http://linux01.gwdg.de/~alatham/stego.html
en utilisant ce programme, vous utiliserez une phrase de passe, sans que personne ne le sache, que vous avez caché des données dans l'image))

1
Maxim Akristiniy

les données compressées dans les fichiers gif sont en morceaux de taille variable. chaque bloc commence par un octet de longueur. Habituellement, ces morceaux sont de 255 octets de données (et l'octet de longueur indique 255), sauf pour les deux derniers morceaux (le dernier est 0)

Mais vous pouvez recoder le gif avec des morceaux dont la taille énonce le message, par exemple en utilisant des caractères pour ASCII texte ou octets 1234 représentant 00011011 données binaires,

l'analyse de fréquence octet sur le gif révélerait moins de 255 octets que prévu. et la taille serait plus grande que l'original, mais l'image serait exactement la même.

1
Jasen

Vous n'avez besoin d'aucun type d'outil avancé pour cacher un fichier dans une image –– vous avez juste besoin de connaître quelques commandes DOS de base… suivez simplement le lien ci-dessous, pour voir comment faire cela (c'est une courte description de stéganographie d'image ):

https://www.youtube.com/watch?v=ox9ArqXtaWw&list=PLqEKOAKK4IbSTfDJZE_lH-DiOjOzZUczx&index=2

0
Raja